使用javascript获取临时文件路径

时间:2017-08-13 19:31:07

标签: javascript php ajax

是否有任何可能的方法来获取

上传的文件的临时文件路径
<input type="file"/>

然后通过ajax将其发送到PHP并将文件存储在那里并存储

使用代码进行说明会很有帮助 三江源

2 个答案:

答案 0 :(得分:0)

客户端没有可以通过Javascript找到的临时文件/路径。您正在使用HTTP请求发送文件(二进制数据),该请求将允许服务器创建临时文件。

当然,您可以在响应中添加由server / php生成的路径。这可以通过获取配置upload_tmp_dir或致电sys_get_temp_dir来完成。

您可以在此处找到更详细的答案:How do I get the PHP Uploads directory?

答案 1 :(得分:0)

(编辑为不使用FormData,但我强烈建议您这样做)

<强>的javascript:

首先是base64文件编码功能:

function getBase64(file, callback) {
   var reader = new FileReader();
   reader.readAsDataURL(file[0].files[0])
   reader.onload = () => {
       callback(reader.result);
   };
}

现在,当用户点击上传按钮时执行此代码:

var data;
getBase64($('input:file'), (r) => { data = r });
$.ajax({
    url: "ajax_php_file.php", // Url to which the request is send
    method: "POST",             // Type of request to be send, called as method
    data: { file: data }
});

<强> PHP:

<?php
    if (isset($_POST['file'])) {
        $data = $_POST['file'];
        file_put_contents('img.jpg', base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data)));
    }
?>