2015-09-24 20 views
0

我有一个通用处理程序,它设置为从运行html5和javascript的ipad接收图片。在通用处理程序中更改图片的文件名

所有的代码都是前后操作,简短一件事。

我需要更改一般处理程序中处理图片的文件名。

这里是我的点击按钮的代码 -

function sendPic() { 
    checkNetwork(); 
    var myInput = document.getElementById('myFileInput'); 
    var file = myInput.files[0]; 
    var formData = new FormData(); 
    formData.append('file', $('#myFileInput')[0].files[0]); 
    $.ajax({ 
    type: 'post', 
    url: domainLocation + 'saveimage.ashx', 
    data: formData, 
    success: function (status) { 
     if (status != 'error') { 
     var my_path = "MediaUploader/" + status; 
     $("#myUploadedImg").attr("src", my_path); 
     } 
    }, 
    processData: false, 
    contentType: false, 
    error: function() { 
     alert("Whoops something went wrong!"); 
    } 
    }); 
} 

这里是通用的处理程序代码 -

public void ProcessRequest(HttpContext context) 
{ 
    string fname; 

    if (context.Request.Files.Count > 0) 
    { 
    HttpFileCollection files = context.Request.Files; 
    for (int i = 0; i < files.Count; i++) 
    { 
     HttpPostedFile file = files[i]; 

     if (HttpContext.Current.Request.Browser.Browser.ToUpper() == "IE" || HttpContext.Current.Request.Browser.Browser.ToUpper() == "INTERNETEXPLORER") 
     { 
     string[] testfiles = file.FileName.Split(new char[] { '\\' }); 
     fname = testfiles[testfiles.Length - 1]; 
     } 
     else 
     { 
     fname = file.FileName; 
     } 
     file.SaveAs(@"\\fdsvr\mwfphotos\" + fname); 
     context.Response.ContentType = "text/plain"; 
     context.Response.Write(fname); 
    } 
    } 
} 

我想在Ajax调用做数据块的

data: { 
    "fileName" : fileName, 
    "formData" : formData 
}, 

这个方向似乎落在处理程序 - 试图从上下文获取formData和文件名。

我会朝着正确的方向走吗?我没有在ajax调用中正确设置数据有效载荷吗?一旦在处理程序中,我将如何将formData带出上下文并在其中使用它?

谢谢

+0

你是什么意思**改变文件名**? – Rayon

+1

我正在使用PHP,因此上传文件处理稍有不同。但是,Mozilla文档建议为formData.append使用第三个参数来指定文件名。看到这个https://developer.mozilla.org/en-US/docs/Web/API/FormData/append – Tacticus

+0

@Tacticus,完美的发现!发布此作为答案,可能会对其他人有所帮助。 – Rayon

回答

2

虽然我使用的JavaScript连同AJAX和PHP来实现类似的东西,我觉得这link on the Mozilla Developer Network可以帮助您构建应用程序。

这里建议为formData.append提供第三个参数,如formData.append('userpic',myFileInput.files [0],'chris.jpg');为了提供一个特定的文件名。

+0

这太棒了....我如何获得通用处理程序中的第三个参数? – pithhelmet

+0

@pithhelmet'myInput.files [0] .name'为您提供所选文件的名称。 –

+0

如何获得通用处理程序代码中的'chris.jpg'参数? – pithhelmet

相关问题