如何使用move_uploaded_file在服务器上传文件

时间:2015-07-21 06:55:29

标签: php jquery

您好我很难使用move_uploaded_file函数将文件传递到新位置。我正在使用ajax将函数传递给我的process.php。 希望你能帮帮我。

这是我的process.php

    $target_dir = "../files-here/";
    $filename = $_POST['filename']; 
    $path_url = $target_dir .$filename;

    if (file_exists($path_url)) {
            echo "Sorry, file already exists.";
            $uploadOk = 0;
        }
        else
        {
            if(move_uploaded_file($filename, $path_url))
            echo "The file".$filename."has been uploaded";

这是我的ajax表单。

echo "<form method='post' enctype='multipart/form-data' id='test_ajax'>";

    echo "<input name='uploadedfile' type='file' id='custom-file-input' class='test-only' /><br/>";
    echo "</form>";
    echo '<button value="Upload" id="custom-submit-input">Upload</button>';


   <script>
jQuery('#custom-submit-input').click(function(){
          
var filename = jQuery('input[type=file]').val().replace(/.*(\/|\\)/, '');

           jQuery.post("file-here/process.php", {                   
                filename: filename

            }, function(data) {
                console.log(data);
                
            });  
   </script>

1 个答案:

答案 0 :(得分:0)

我不确定这是否会按预期运作。您的表单永远不会“提交”,因此您的文件不会上传,也不会处理您上传的文件。您可能设法POST文件的文件名,但这就是全部。

你需要:

  1. 以通常的方式提交表单(使用HTML)
  2. 处理您上传的文件(使用PHP)
  3. 移动上传的文件(使用PHP)
  4. 您上传的文件将存在于“临时”目录中,上传后会带有“临时”文件名,您需要从$ _FILES数组中获取该数据。您可以使用move_uploaded_file将临时文件移动到其最终目的地。

    我不确定你能否'ajax'这个过程的大部分内容。