Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用ajax上传文件并使用PHP移动文件?_Javascript_Php_Security_Extjs - Fatal编程技术网

Javascript 如何使用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

我使用javascript获取文件路径,但它返回C:\fakepat\fileName,然后我替换fakepath以仅获取文件名。然后将ajax转换为php。并执行这一行:

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);
             }
    });