2016-08-13 158 views
0

我正在使用JSZip压缩某些用户上传文件并将此zip文件存储在服务器上。 zip_file包含我想要存储在服务器中的zip文件。 zip_file是base64格式,因此,如果我将它作为LongText格式存储在PHPMyAdmin中,则它不能存储一些zip。是否有可能将zip_file转换为压缩并移动到目录?如果是的话,该怎么办?或者如何在PHPMyAdmin中存储base64值。如何将base64转换为zip并移动到服务器

zip.generateAsync({type:"base64"}).then(function (content) { 
    zip_file = "data:application/zip;base64," + content; 
    //zip_file convert and move to /uploads folder 
}); 

回答

1

您可以设置返回typeblob,使用XMLHttpRequest()发布Blobphp

zip.generateAsync({type:"blob"}).then(function (content) { 
    var request = new XMLHttpRequest(); 
    request.open("POST", "/path/to/server"); 
    request.send(content); 
}); 

在PHP中使用php://input,看到Beyond $_POST, $_GET and $_FILE: Working with Blob in JavaScript and PHP

<?php 

    // choose a filename 
    $filename = "file.zip"; 

    // the Blob will be in the input stream, so we use php://input 
    $input = fopen('php://input', 'rb'); 
    $file = fopen($filename, 'wb'); 

    // Note: we don't need open and stream to stream, 
    // we could've used file_get_contents and file_put_contents 
    stream_copy_to_stream($input, $file); 
    fclose($input); 
    fclose($file); 

?> 
+0

非常感谢。这对我很有用。 –

相关问题