当前位置: 代码迷 >> ASP.NET >> FireFox 上传文件,该如何处理
  详细解决方案

FireFox 上传文件,该如何处理

热度:4676   发布时间:2013-02-25 00:00:00.0
FireFox 上传文件
火狐下上传文件获取到的值只有文件名没有路径,IE正常。
怎么解决?在火狐中怎么获取上传文件的路径??

------解决方案--------------------------------------------------------
void UploadImage()
{
HttpFileCollection uploadFilCol = Request.Files;
for (int i = 0; i < uploadFilCol.Count; i++)
{
HttpPostedFile file = uploadFilCol[i];
string fileExt = Path.GetExtension(file.FileName).ToLower();
string fileName = Path.GetFileName(file.FileName);
if (fileName != string.Empty)
{
try
{
if (fileExt == ".jpg" || fileExt == ".gif")
{
file.SaveAs(Server.MapPath("./Images/") + fileName);
this.ShowMessage(" " + fileName + " Successfully Uploaded", i);
}
else
{
file.SaveAs(Server.MapPath("./Others/") + fileName);
this.ShowMessage(" " + fileName + " Successfully Uploaded", i);
}
}
catch (Exception ex)
{
this.ShowMessage(" " + ex.Message, i);
}
}
}
}

你改改吧~ 我都是用这个 firefox也很好使
------解决方案--------------------------------------------------------
这个上传你怎么也得提交form才行的吧,要是提交form的话,不用得到那个路径就可以的
 要是不提交的话,我想只给个路径是不能上传的吧,个人理解,不对的地方请指出。。。
 ie能得到那个路径,按理说具有一定的不安全性的
------解决方案--------------------------------------------------------
aspx
__
我使用了Jquery的插件,所以在<form >中不写>>
 <form id="Form1" method="post" runat="server" enctype="multipart/form-data"> 
 在form中加入enctype="multipart/form-data"这句话 
若不是,则需要

 使用<input type=file>

$.ajaxFileUpload(
{
url:'UploadImage.aspx',
secureuri:false,
fileElementId:'fileToUpload',
dataType: 'json',
success: function (data, status)
{
// 上传成功
}
});

UploadImage.aspx.cs:

if (Request.Files.Count > 0)
{
HttpPostedFile file = Request.Files[0];
string strImagePath = Server.MapPath("~/uploadImage") + "//";
string flage = WebUtility.UploadFileBySinge(file, strImagePath);

string msg = "";
string error = "";
if (!string.IsNullOrEmpty(flage))
msg = "上传成功";
else
error = "上传失败";

string result = "{ error:'" + error + "', msg:'" + msg + "',imgName:'"+flage+"'}";
Response.Write(result);
Response.End();
}
这样就可以了,不需要获得路径,直接使用input file 就行了

------解决方案--------------------------------------------------------
实际上我的意思是你不要显示的得到文件名称,这一切可以交给程序去办

你只需要确定页面有这几项就可以了

1:
<form id="Form1" method="post" runat="server" enctype="multipart/form-data"> 

2:
<asp:FileUpload> or <input type="file">

3: js:
ajax:为post提交。
url:UploadImage.aspx
4.在提交到的网页UploadImage.aspx 的后台UploadImage.aspx.cs获得提交到的文件

HttpPostedFile file = Request.Files[0]; 

然后上传。

这些我在ff3.0测试过。
------解决方案--------------------------------------------------------
确实如此,该死的FF3.
  相关解决方案