gpt4 book ai didi

javascript - 使用 Ajaxcall 的 VB.net 文件上传

转载 作者:行者123 更新时间:2023-11-28 07:39:36 25 4
gpt4 key购买 nike

嗨,我有一个 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

任何人都有任何想法

最佳答案

可以按照此链接中的说明来完成:http://www.binaryintellect.net/articles/f2a2f1ee-e18a-416b-893e-883c800f83f4.aspx

“您可以使用 jQuery 对服务器进行 Ajax 调用,并将选定的文件 POST 到通用处理程序 (.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>

然后在您的处理程序文件中,您可以执行类似的操作将 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;
}
}
}
}

关于javascript - 使用 Ajaxcall 的 VB.net 文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28212260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com