browser - 处理 IE 并且它不处理大小,等等

  显示原文与译文双语对照的内容
64 1

我使用v3.9个用户界面与jQuery包装器:

现在我已经在IE9中解决了'超过最大请求长度'错误( 从这里开始: FineUploader错误句柄 ) 。 所有FineUploader代码都在这个链接中,并且不认为我需要再次发布它。

现在我正在寻找更好的方法让 IE 用户知道他们试图上传一个太大的( 但是,Chrome 用户得到过大的文件警报,所以这不是一个问题) 文件。 我认为我不需要混乱'邮件'选项,因为它们正在工作,因为它们应该是所有它的他浏览器。 是 IE的工作不正常 ! IE 用户将使用他们选择的文件一直到达服务器。 为了处理超过to属性的文件,我在服务器端检查了内容长度>'n'并返回JSON成功= false 。 请参见以下内容:


 [HttpPost]
 public JsonResult UploadFile(HttpPostedFileWrapper qqfile, int surveyInstanceId, int surveyItemResultId, int itemId, int loopingIndex)
 { 
 bool isValid = false;

//file is too big, throw error.
 if (qqfile.ContentLength> (1024*1024*2.5))
 {
 return CreateJsonResult(false); 
 }

 More Code here if the file is 'good'
 }

 private JsonResult CreateJsonResult(bool isSuccess)
 {
 var json = new JsonResult();
 json.ContentType ="text/plain";
 json.Data = new { success = isSuccess };
 return json;
 }

这个短路是基于大小的无效文件上传。 很好,但是我可以返回更多的success=false,并让FineUploader使用这个额外的JSON值来显示一个更有用的消息给用户? 目前所展示的是'上传失败'。 如何引用该无效文件的特定html元素,这样我就可以添加更具描述性的错误?

另外,我有. on('error') 方法,但我不确定如何触发这个。 这将是一个逻辑的地方,因为文件上传大小问题是一个错误。 帮助谢谢。

时间: 原作者:

78 5
  1. 使用请求的Content-Length 来强制文件大小限制不是一个好主意。 默认情况下,由精上传器发送的所有上传请求都是多部分编码的。 多部分编码请求的Content-Length 是整个请求的大小,而不仅仅是文件的大小。
  2. 在回答你最后一个问题的答案中,我指出了允许你控制文件中出现的错误文本的文档。 你所要做的就是将 failedUploadTextDisplay 选项的mode 属性设置为"自定义"。 服务器端,返回要在JSON响应的"错误"属性中出现的失败文件旁边的错误消息文本。 查看 "处理错误"文档部分的底部,了解更多细节。

更新

看起来你正在使用 HttpPostedFileWrapperContentLength 属性,该属性返回上传文件的大小。 这对于我来说有点迷惑,因为内容长度通常指的是请求的大小。 在微软的一部分,这个属性的名称选择差不多。 所以你可以在我的答案中忽略 #1.

原作者:
...