Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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
使用jQuery移动上载的文件时出错&;PHp_Php_Jquery - Fatal编程技术网

使用jQuery移动上载的文件时出错&;PHp

使用jQuery移动上载的文件时出错&;PHp,php,jquery,Php,Jquery,这是“post.php” 一切正常,我得到了照片的文件名,但我无法使用move_uploaded_file()将其移动到另一个文件夹中;函数。您需要使用临时文件名($\u FILES['userfile']['tmp\u name']) move\u uploaded\u file函数仅适用于PHP知道是通过它上载的文件。但是如何获取临时文件名?我不想使用表单等。我只有文件名和路径?PHP在$\u FILESglobal中为您提供了有关上载文件的所有信息。如果您没有在这个脚本中实际上传文件

这是“post.php”



一切正常,我得到了照片的文件名,但我无法使用move_uploaded_file()将其移动到另一个文件夹中;函数。

您需要使用临时文件名(
$\u FILES['userfile']['tmp\u name']


move\u uploaded\u file
函数仅适用于PHP知道是通过它上载的文件。

但是如何获取临时文件名?我不想使用表单等。我只有文件名和路径?PHP在
$\u FILES
global中为您提供了有关上载文件的所有信息。如果您没有在这个脚本中实际上传文件(再次查看,我在您的JavaScript中没有看到),那么
move\u uploaded\u file
是一个错误的函数。如果是这样的话,我确实有一个严重的安全问题(正如其他人所提到的)。我不想使用“表单”如何使用javscript上传?这是一个完全不同的问题,而且不是一个好问题。请明确描述您想要实现的目标。您需要一个表单来上传文件,或者您需要从AJAX POST开始,而不是GET并手动将文件加载到JavaScript中。你最好使用一个库,但大多数库只是使用JavaScript创建和提交一个
;攻击者可以在您的服务器磁盘中写入任何文件。我知道这只是为了测试man:)服务器需要的文件超过了文件输入的值。如果不打算使用表单,唯一的选择是使用
window.FormData
,这在所有浏览器中都不受支持。建议的解决方案是只使用表单,它是跨浏览器的,易于实现,并且不需要刷新页面。我如何才能做到这一点?没有提神?
$(document).ready(function(){

        var status;
        var photo_url;
        var ext;

    $("#photo_file").change(function() {

        photo_url = this.value.split("\\").pop();

        ext = photo_url.split('.').pop().toLowerCase();

        if ( (ext == "jpg" ) || ( ext == "jpeg") ||  (ext == "png") ) {
            $.get('ajax/post.php', {photo_url: photo_url});
        } else {


            alert("incorrect file type, allowed: jpg, jpeg, png.");
        }

    });
<?php

    $photo_url = $_GET['photo_url'];

    $file_path = 'uploaded_photos/' . $photo_url;
    $photo_url = 'img/' . $photo_url;

    move_uploaded_file($photo_url, $file_path);

?>