应该怎样写一个类似file的东西呢,就是页面上有一个type=button 然后点击就直接弹出一个文件选择框,选择完文件然后就返回一个正确的路径,请大神们帮忙,小弟菜鸟已经郁闷了一天了!
是类似的file是东西,不用<input type=file> 也就是说要替换掉这个控件,因为它已经获取不到正确的地址了,修改IE设置的方法是不可行的,因为作为开发人员知怎么去设置但是用户不会去设置。
页面部分:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MulitFilesUpload.aspx.cs" Inherits="WQT.WebUI.Jquery.MulitFilesUpload" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>多文件上传</title>
<script type="text/javascript" src="../Lib/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
var fileIndex = 2;
var controlId = "file";
$(function() {
$("#btnAddNew").bind("click", function() {
$("#Container").append("<input type='file' name='"+controlId+fileIndex+"' />");
fileIndex++;
});
});
</script>
</head>
<body>
<form id="form1" runat="server" enctype="multipart/form-data">
<div id="Container" style="width: 280px;">
<h3>多文件上传</h3>
<input type="file" name="file1" />
<a id="btnAddNew" href="#">添加项</a>
</div>
<div> <asp:Button ID="btnSave" runat="server" Text="保存" OnClick="btnSave_Click" />
</div>
</form>
</body>
</html>
后台:
namespace WQT.WebUI.Jquery{
public partial class MulitFilesUpload : System.Web.UI.Page {
private string _saveToPath = "~/Jquery/uploads/";
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
_saveToPath = Server.MapPath(_saveToPath);
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
int fileCount = Request.Files.Count;
string fileName = string.Empty;
string filePath=string.Empty;
for (int i = 0; i < fileCount; i++)
{
fileName = Request.Files[i].FileName;
filePath = _saveToPath + fileName.Substring(fileName.LastIndexOf("\\")+1);
Request.Files[i].SaveAs(filePath) ;
}
}
}}
你确定是安全性的问题吗?
是安全性问题
@半路使者: 那就用第三方插件吧
@半路使者: wydycg 这个设置你接受不了么?
@sym_cn: 修改IE设置的方法是不可行的,因为作为开发人员知怎么去设置但是用户不会去设置。
@半路使者: 那就用第三方吧。http://www.open-open.com/ajax/2_Upload.htm
如果是做小练习的话 那么就用input的file就可以了
如果是商用的项目 那还是用jQuery封装好的上传插件吧,因为客户端浏览器兼容性 版本 突发情况你考虑肯定不够全,不是给个按钮 一传就能到服务器那么简单的
PS:input那个file上传alert看不到上传路径 但是能传到你指定的目录
是安全性问题,现在ie的好象都显示掉了,要在ie上改一下就可以:
用FileUpload.PostFile.Filename获取不到完整路径,IE浏览器的安全性太高,在工具-->Inernet-->安全-->自定义级别-->启用 “将文件上载到服务器并包含本地路径”
OK...
@sym_cn: 修改IE设置的方法是不可行的,因为作为开发人员知怎么去设置但是用户不会去设置。
是文件上传吗?
jquery的uploadify
或者是
flash的上传
不行就用第三方上传jquery的uploadify