是否有任何可能的方法来获取
上传的文件的临时文件路径<input type="file"/>
然后通过ajax将其发送到PHP并将文件存储在那里并存储
使用代码进行说明会很有帮助 三江源
答案 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)));
}
?>