我在我的网站中使用“jquery.uploadify.js”,这个 jquery 使用 ashx 文件将图像上传到文件夹中。在 .ashx 中,我使用 Session["FileNameNews"] 来保存图像名称,并且在我的代码开头我的 Session["FileNameNews"] 是空的。但是当我上传两个或三个或...图像时,每次我的 Session["FileNameNews"] 都是空的。我不想每次上传照片时都清空我的会话,我希望上传的图像显示在父 .aspx 页面的列表框中。其他方式,我需要在上传开始时将会话清空,并在上传结束时填写图像名称。我可以一次上传多张图片。
有人有想法吗?请帮我。
谢谢你。
.aspx 页面:
<script type = "text/javascript">
$(window).load(
function() {
$("#<%=FileUpload1.ClientID%>").fileUpload({
'uploader': 'scripts/uploader.swf',
'cancelImg': 'images/cancel.png',
'buttonText': 'Browse Files',
'script': 'Upload.ashx',
'folder': 'Temp',
'fileDesc': 'Image Files',
'fileExt': '*.jpg;*.jpeg;*.gif;*.png',
'multi': true,
'auto': false
});
}
);
</script>
<a href="javascript:$('#<%=FileUpload1.ClientID%>').fileUploadStart()">Start Upload</a>
|<a href="javascript:$('#<%=FileUpload1.ClientID%>').fileUploadClearQueue()">Clear</a>
<div style = "padding:40px">
<asp:FileUpload ID="FileUpload1" runat="server" />
</div>
和 Upload.ashx:
public class Upload : IHttpHandler, IRequiresSessionState {
public void ProcessRequest(HttpContext context)
{
context.Session["FileNameNews"] = "";
context.Response.ContentType = "text/plain";
context.Response.Expires = -1;
try
{
HttpPostedFile postedFile = context.Request.Files["Filedata"];
string savepath = "";
string tempPath = "";
tempPath = "Temp";//System.Configuration.ConfigurationManager.AppSettings["FolderPath"];
savepath = context.Server.MapPath(tempPath);
string filename = postedFile.FileName;
if (!Directory.Exists(savepath))
Directory.CreateDirectory(savepath);
string SitePath = context.Server.MapPath(context.Request.ApplicationPath) + @"\Temp\";
string SitePath1 = context.Server.MapPath(context.Request.ApplicationPath) + @"\WebImages\NewsImages\";
string FileN = SitePath + filename + "{---}" + context.Session["UserID"].ToString();
if ((File.Exists(SitePath + filename + "{---}" + context.Session["UserID"])) || (File.Exists(SitePath1 + filename)))
{
return;
}
else
{
postedFile.SaveAs(savepath + @"\" + filename);
postedFile.SaveAs(savepath + @"\" + filename + "{---}" + context.Session["UserID"]);
if (context.Session["FileNameNews"] == "") { context.Session["FileNameNews"] = filename; }
else { context.Session["FileNameNews"] = context.Session["FileNameNews"] + "," + filename; }
context.Response.Write(tempPath + "/" + filename);
context.Response.StatusCode = 200;
}
}
catch (Exception ex)
{
context.Response.Write("Error: " + ex.Message);
}
}
public bool IsReusable
{
get
{
return false;
}
}
}