RT,
最近开始搞一个多文件上传的问题,将案例引入到项目中的时候,出现了文件名称乱码的问题?
不知道各位遇到过没有?
1.自己检查了这个项目的编码格式web.config都写写好的,
- C# code
<globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>
2.页面文件的编码:
- C# code
<%@ Page Language="C#" ResponseEncoding="gb2312" <meta content="text/html; charset=gb2312" http-equiv="Content-Type">
3.将页面文件用TXT打开重新设置了保存时的编码为: UTF-8
共有(ANSI,UTF-8,Unicode,Unicode big endia)
4.
这个是案例的项目结构,他将 FileUpload 封装为了一个类库。
- C# code
public class FlashUpload : Control { private const string FLASH_SWF = "FlashUpload.FlashFileUpload.swf"; [Category("Behavior")] [Description("The page to upload files to.")] [DefaultValue("")] public string UploadPage { get { object o = ViewState["UploadPage"]; if (o == null) return ""; return o.ToString(); } set { ViewState["UploadPage"] = value; } } [Category("Behavior")] [Description("Query Parameters to pass to the Upload Page.")] [DefaultValue("")] public string QueryParameters { get { object o = ViewState["QueryParameters"]; if (o == null) return ""; return o.ToString(); } set { ViewState["QueryParameters"] = value; } } [Category("Behavior")] [Description("Javascript function to call when all files are uploaded.")] [DefaultValue("")] public string OnUploadComplete { get { object o = ViewState["OnUploadComplete"]; if (o == null) return ""; return o.ToString(); } set { ViewState["OnUploadComplete"] = value; } } [Category("Behavior")] [Description("The maximum file size that can be uploaded, in bytes (0 for no limit).")] public decimal UploadFileSizeLimit { get { object o = ViewState["UploadFileSizeLimit"]; if (o == null) return 0; return (decimal)o; } set { ViewState["UploadFileSizeLimit"] = value; } } [Category("Behavior")] [Description("The total number of bytes that can be uploaded (0 for no limit).")] public decimal TotalUploadSizeLimit { get { object o = ViewState["TotalUploadSizeLimit"]; if (o == null) return 0; return (decimal)o; } set { ViewState["TotalUploadSizeLimit"] = value; } } [Category("Behavior")] [Description("The description of file types that you want uploads restricted to (ex. Images (*.JPG;*.JPEG;*.JPE;*.GIF;*.PNG;))")] [DefaultValue("")] public string FileTypeDescription { get { object o = ViewState["FileTypeDescription"]; if (o == null) return ""; return o.ToString(); } set { ViewState["FileTypeDescription"] = value; } } [Category("Behavior")] [Description("The file types to restrict uploads to (ex. *.jpg; *.jpeg; *.jpe; *.gif; *.png;)")] [DefaultValue("")] public string FileTypes { get { object o = ViewState["FileTypes"]; if (o == null) return ""; return o.ToString(); } set { ViewState["FileTypes"] = value; } } protected override void OnLoad(EventArgs e) { base.OnLoad(e); Page.Form.Enctype = "multipart/form-data"; } protected override void Render(HtmlTextWriter writer) { base.Render(writer); string url = Page.ClientScript.GetWebResourceUrl(this.GetType(), FLASH_SWF); string obj = string.Format("<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\"" + "codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0\"" + "width=\"575\" height=\"375\" id=\"fileUpload\" align=\"middle\">" + "<param name=\"allowScriptAccess\" value=\"sameDomain\" />" + "<param name=\"movie\" value=\"{0}\" />" + "<param name=\"quality\" value=\"high\" />" + "<param name=\"wmode\" value=\"transparent\">" + "<PARAM NAME=FlashVars VALUE='{3}{4}{5}{6}{7}&uploadPage={1}?{2}'>" + "<embed src=\"{0}\"" + "FlashVars='{3}{4}{5}{6}{7}&uploadPage={1}?{2}'" + "quality=\"high\" wmode=\"transparent\" width=\"575\" height=\"375\" " + "name=\"fileUpload\" align=\"middle\" allowScriptAccess=\"sameDomain\" " + "type=\"application/x-shockwave-flash\" " + "pluginspage=\"http://www.macromedia.com/go/getflashplayer\" />" + "</object>", url, ResolveUrl(UploadPage), HttpContext.Current.Server.UrlEncode(QueryParameters), string.IsNullOrEmpty(OnUploadComplete) ? "" : "&completeFunction=" + OnUploadComplete, string.IsNullOrEmpty(FileTypes) ? "" : "&fileTypes=" + HttpContext.Current.Server.UrlEncode(FileTypes), string.IsNullOrEmpty(FileTypeDescription) ? "" : "&fileTypeDescription=" + HttpContext.Current.Server.UrlEncode(FileTypeDescription), TotalUploadSizeLimit > 0 ? "&totalUploadSize=" + TotalUploadSizeLimit : "", UploadFileSizeLimit > 0 ? "&fileSizeLimit=" + UploadFileSizeLimit : "" ); writer.Write(obj); } }