前端通过FormData上传文件到服务器端

该代码示例展示了前端如何使用HTML和JavaScript处理ZIP文件上传,通过Ajax调用后端C#服务进行文件解析和存储。后端检查文件类型并保存到指定目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端代码

html

<input type="file" accept=".zip" onchange="uploadFile(this.value);">

JavaScript

function uploadFile(file) {
    if (!file) {
        return;
    }

    // upload params
    var data = {
        UserID: top.BDCGlobal.USERINFO.user_id,
        ProjectID: inProjInfo.ID,
        flag: "jnkcydoc_importZIP"
    };

    var formData = new FormData();
    formData.append("Files", $("#btn_importZIP input[type=file]").prop("files")[0]);
    for (var d in data) {
        formData.append(d, data[d]);
    }

    // upload
    $.ajax({
        url: UploadFileService.url,
        type: "post",
        data: formData,
        cache: false,
        processData: false,
        contentType: false,
        dataType: "json",
        success: function (res) {
            if (res.success) {
                console.log("import ZIP success");
            }
        },
        error: function (eres) {
            console.log("import ZIP err");
        }
    });

}

后端c#解析代码

public void importZIP(HttpContext context)
{
      HttpFileCollection files = context.Request.Files;

      string UserID = context.Request.Form["UserID"];
      string ProjectID = context.Request.Form["ProjectID"];

      if (files.Count < 1)
      {
          context.Response.Write("{\"success\":0,\"message\":\"未找到文件!\"}");
          HttpContext.Current.ApplicationInstance.CompleteRequest();
          return;
      }

      // 单文件,取出最后一个
      HttpPostedFile file = files[files.Count - 1];


      // check file ext
      string extStr = file.FileName.Substring(file.FileName.LastIndexOf('.')).ToLower();
      
      if (extStr != ".zip")
      {
          context.Response.Write("{\"success\":0,\"message\":\"不是标准的ZIP文件!\"}");
          HttpContext.Current.ApplicationInstance.CompleteRequest();
          return;
      }

      string basePath = AppDomain.CurrentDomain.BaseDirectory;//文件基目录
      string relativePath = "Files\\zip\\" + UserID + "\\";//服务器上的相对路径
      string path = basePath + relativePath;
      if (Directory.Exists(path))
          Directory.Delete(path, true);
      Directory.CreateDirectory(path);

      string fileName = file.FileName;
      file.SaveAs(path + fileName);
       
      string result = "{\"success\": 1, \"result\": 1}"; 
      context.Response.Write(result);
      HttpContext.Current.ApplicationInstance.CompleteRequest();
      return; 
  }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值