FlashUpload 一次多选文件上传乱码问题

七色鸟 2011-12-16 10:05:27
RT,
最近开始搞一个多文件上传的问题,将案例引入到项目中的时候,出现了文件名称乱码的问题?
不知道各位遇到过没有?
1.自己检查了这个项目的编码格式web.config都写写好的,

<globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>

2.页面文件的编码:

<%@ 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 封装为了一个类库。



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);
}
}


究竟这个乱码问题该怎么解决? 等待高手.....
...全文
154 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
七色鸟 2011-12-16
  • 打赏
  • 举报
回复
总结了一下,页面的编码要设置为 UTF-8
1.

<globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="UTF-8"/>

2.

<meta content="text/html;charset=utf-8" http-equiv="Content-Type">

只要设置页面编码为utf-8就可以了,
快溜 2011-12-16
  • 打赏
  • 举报
回复
乱码?编码问题吧
七色鸟 2011-12-16
  • 打赏
  • 举报
回复
自己解决了,,
七色鸟 2011-12-16
  • 打赏
  • 举报
回复
天气冷,自己先顶顶。。。
SomethingJack 2011-12-16
  • 打赏
  • 举报
回复
呵呵 我最近也是在搞flash多文件上传 我研究的是uploadify这个插件`
阿非 2011-12-16
  • 打赏
  • 举报
回复
上传文件编码通常都是 utf-8

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧