Javascript 如何使用ajax上传文件并使用PHP移动文件?
我使用javascript获取文件路径,但它返回C:\fakepat\fileName,然后我替换fakepath以仅获取文件名。然后将ajax转换为php。并执行这一行:Javascript 如何使用ajax上传文件并使用PHP移动文件?,javascript,php,security,extjs,Javascript,Php,Security,Extjs,我使用javascript获取文件路径,但它返回C:\fakepat\fileName,然后我替换fakepath以仅获取文件名。然后将ajax转换为php。并执行这一行: copy("filename", $targetPath); 它返回此错误没有目录或文件@Toltis由于fakepath,您应该通过javascript上传 这就是html: <input type="file" id="file" onchange="upload(event)" /> <img sr
copy("filename", $targetPath);
它返回此错误没有目录或文件@Toltis由于fakepath,您应该通过javascript上传 这就是html:
<input type="file" id="file" onchange="upload(event)" />
<img src="" id="img" />
<textbox id="hidden_box" name="hidden_box" style="visibility: hidden;"></textbox>
然后可以在php中以隐藏框的内容为目标。在(,)上打断它,然后解码剩余的字符串-base64_decode-然后将其保存到文件中
真正的文件名,您已经知道如何获取它。PHP是在服务器端执行的,因此它无法访问您的客户端文件 要使用ajax将文件从客户端传输到服务器,我建议在上传按钮周围包装一个表单。提交XHR后,您可以通过$\u FILES变量在PHP中访问该文件,并将其移动到任何需要的位置: HTML
<form>
<input type="file" id="upload" onchange="javascript:uploadFile()" />
</form>
PHP
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['uploadfile']['name']);
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile)) {
// upload succeeded
} else {
// upload failed
}
在ajax中,您可以编写以下内容
var form_data = new FormData();
var file_data1 = $('#file').prop('files')[0];
form_data.append('file', file_data1);
$.ajax({
url: 'assets/addEdi.php', // point to server-side PHP script
dataType: 'text', // what to expect back from the PHP script, if anything
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function (php_script_response) {
$('#res').html(php_script_response);
}
});
文件是否通过PHP上传?你应该从临时目录复制它。你实际上想做什么?听起来您正在尝试建立文件上载,是吗?是的,我想在服务器目录中建立上载文件。:)
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['uploadfile']['name']);
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile)) {
// upload succeeded
} else {
// upload failed
}
var form_data = new FormData();
var file_data1 = $('#file').prop('files')[0];
form_data.append('file', file_data1);
$.ajax({
url: 'assets/addEdi.php', // point to server-side PHP script
dataType: 'text', // what to expect back from the PHP script, if anything
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function (php_script_response) {
$('#res').html(php_script_response);
}
});