VB.net文件上传使用AjaxCall的

问题描述 投票:1回答:1

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

任何机构有任何想法

javascript ajax vb.net jqgrid
1个回答
0
投票

可以按照此链接中的说明来完成: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>

然后在你的处理程序文件,你可以做这样的事情,以张贴的文件保存到服务器。

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;
            }
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.