您好我有一个Jqgrid子网格。在里面,我有上传控制。
上传控件工作正常,直到要求文件并选择文件。
但是我无法读取后端vb.net端的文件值。
Javascript代码:
$('#FormPath')[0].files[0]
将返回[object,file].
这意味着它能够读取文件。
var fd = new FormData();
fd.append('file', $('#FormPath')[0].files[0]);
$.ajax({
url: 'Forms.aspx/UploadFormDetails',
data: fd,
cache:false,
processData: false,
contentType: false,
type: 'POST',
success: function(fd){
alert(fd);
}
});
我的运气不好,它没有达到下面提到的代码。如果它命中我可能会读取该文件。 Vb.net代码
<WebMethod> _
Public Shared Function UploadFormDetails() As String
Dim httpPostedFile = HttpContext.Current.Request.Files("UploadedFile")
If httpPostedFile IsNot Nothing Then
' Get the complete file path
Dim fileSavePath = Path.Combine(HttpContext.Current.Server.MapPath("/Attachments/pdf/Forms/"), httpPostedFile.FileName)
' Save the uploaded file to "UploadedFiles" folder
httpPostedFile.SaveAs(fileSavePath)
End If
Return ""
End Function
任何团体都有任何想法
答案 0 :(得分:0)
可以按照以下链接上的说明进行操作:http://www.binaryintellect.net/articles/f2a2f1ee-e18a-416b-893e-883c800f83f4.aspx
“代替使用整页回发,您可以使用jQuery对服务器进行Ajax调用,然后将所选文件发布到通用处理程序(.ashx)。然后,通用处理程序可以将文件保存到指定的文件夹中。这篇文章的其余部分展示了如何实现这一目标。”
<script type="text/javascript">
$(document).ready(function () {
$("#Button1").click(function (evt) {
var fileUpload = $("#FileUpload1").get(0);
var files = fileUpload.files;
var data = new FormData();
for (var i = 0; i < files.length; i++) {
data.append(files[i].name, files[i]);
}
var options = {};
options.url = "FileUploadHandler.ashx";
options.type = "POST";
options.data = data;
options.contentType = false;
options.processData = false;
options.success = function (result) { alert(result); };
options.error = function (err) { alert(err.statusText); };
$.ajax(options);
evt.preventDefault();
});
});
</script>
然后在Handler文件中,您可以执行以下操作将POSTed文件保存到服务器中。
namespace jQueryFileUploadDemo
{
public class FileUploadHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if (context.Request.Files.Count > 0)
{
HttpFileCollection files = context.Request.Files;
for (int i = 0; i < files.Count;i++ )
{
HttpPostedFile file = files[i];
string fname = context.Server.MapPath("~/uploads/" + file.FileName);
file.SaveAs(fname);
}
}
context.Response.ContentType = "text/plain";
context.Response.Write("File(s) Uploaded Successfully!");
}
public bool IsReusable
{
get
{
return false;
}
}
}
}