如何在浏览器的进度栏中显示上传 FTPWebRequest 文件的进度?
在我的 c# MVC 4 应用程序中,我实现了 Blueimp 文件上传示例的 .Net 示例,此处可以找到:
本次上传使用 jquery.fileupload-ui.js 插件。
我已修改 MVC 应用程序中的 handler.ashx 以使用 FTPWebRequest 将文件上传到 FTP 服务器。
当我开始上传文件时,进度条有效,但进度指示器无法准确显示进度状态
浏览器中的进度条总是在 FTPWebRequest 开始之前以浏览器方式指示进度已完成。
我的处理程序看起来像这样
public class Handler1 : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
try
{
context.Response.ContentType = "text/plain"; //"application/json";
HttpContext postedContext = HttpContext.Current;
var r = new System.Collections.Generic.List<ViewDataUploadFilesResult>();
var js = new JavaScriptSerializer();
foreach (string file in context.Request.Files)
{
var hpf = context.Request.Files[file] as HttpPostedFile;
uplaodFiles(hpf,pid, id);
private UploadState uplaodFiles(HttpPostedFile file,Guid pid, string id)
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Timeout = 3600000;
request.Credentials = new NetworkCredential(ftpuser, ftpassword);
byte[] fileData = null;
using (Stream input = file.InputStream)
{
using (Stream output = request.GetRequestStream())
{
input.CopyTo(output);
}
}
我故意省略了上面代码示例的部分内容