需要的.Net Web应用程序上传(使用JSZIP)时,从客户机ZIP选定的文件。 该压缩文件应

2019-10-19 05:09发布

我是新来使用JSZIP并且可能会问一个明显的问题。 但这里有云:

我现在用的文件上传控件上载文件到服务器。 源文件是在客户端上的路径。 目标文件应该是服务器上。

<html xmlns="http://www.w3.org/1999/xhtml">  
<head runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>jszip demo</title>
        <script type="text/javascript" src="../Scripts/jszip.js"></script>
        <script type="text/javascript" src="../Scripts/jszip-load.js"></script>
        <script type="text/javascript" src="../Scripts/jszip-deflate.js"></script>
        <script type="text/javascript" src="../Scripts/jszip-inflate.js"></script>

        <script type="text/javascript">

            function zipFileAndUpload() 
            {
                var myFileUploadControl1 = document.getElementById('myFileUploadControl1');
                var FILENAMEABSOLUTE = myFileUploadControl1.value;

                var zip = new JSZip(FILENAMEABSOLUTE);
                zip.file(FILENAMEABSOLUTE);
                var content = zip.generate({ type: "blob" });
                //
                // Other Code Here
                //
            }

        </script>
    </head>
        <body>
            <form id="form1" runat="server">
                <asp:FileUpload ID="myFileUploadControl1" runat="server"/>
                <input type="button" value="Select File" onclick="zipFileAndUpload()"/>
            </form>
        </body>
        </html>

我的要求是,当客户端选择的文件,应该使用JavaScript中JSZIP有拉链,然后上传到服务器。

我试图找到一个解决这一点,但什么也没得到。 也是我的解决方案,我已经尝试到现在还没有工作。

  1. 我需要阅读客户端计算机上的文件通过“myFileUploadControl1”作为选择。
  2. ZIP和保持文件的本地RAM或客户机。
  3. 上传服务器的路径后此服务器上。

谁能帮我?

Answer 1:

一旦你的拉链构造,可以将其发布到使用jQuery如下服务器。

var zipData = zip.generate({ type: "base64" });

var formData = new FormData();
formData.append('zipData', zipData);

var postToServer = $.ajax({
    type: "POST",
    url: "Upload", // My server-side MVC controller has an action named Upload
    data: formData,
    processData: false,
    contentType: false,
});

postToServer.done(function () {
    ...
});

postToServer.fail(function( jqXHR, textStatus ) {
    ...
});

在服务器端,您将需要编写代码以接收数据流,并使用你选择的任何服务器端技术保存在那里。



文章来源: Need to ZIP the selected file from Client machine when uploading (using JSZIP) in .Net Web App. The zipped file should be uploaded to server location