使用AJAX jQuery上传文件

时间:2018-08-28 14:46:17

标签: php jquery ajax

我正在尝试使用JQUERY AJAX上传单个文件。我找到了这个旧线程-Jquery ajax single file upload

我遵循了代码,但是我的php脚本不断出现“未设置”错误。

这是我的HTML

<form id="fileinfo" enctype="multipart/form-data" method="post" name="fileinfo">
    <label>File:</label>
    <input type="file" name="file" required />
</form>
<input type="button" id="upload" value="Upload"></input>
<div id="output"></div>

这是我的Jquery代码。一世 使用了最新的未压缩CDN-https://code.jquery.com/jquery-3.3.1.js

$( document ).ready(function() {

    $('#upload').on('click', function(){ 

                var formData = new FormData(); 
                formData.append('file', $('input[type=file]')[0].files[0]);
        $.ajax({
            url: 'upload.php',  
            type: 'POST',
            data: formData,
            success:function(data){
                $('#output').html(data);
            },
            cache: false,
            contentType: false,
            processData: false
        });
    });
});

这是我的php脚本(upload.php)

<?php
    if(isset($_GET['file'])){
    $filename = $_FILES['file']['name'];
        if(isset($filename) && !empty($filename)){
        echo 'File available';
        }else{
        echo 'please choose a file';
        }
    } else{
    echo 'No file';
    }
?>

更新:使用下面的代码更改了我的PHP代码,并解决了该问题。

<?php
$info = pathinfo($_FILES['file']['name']);
$ext = $info['extension']; // get the extension of the file
$newname = "newname.".$ext; 

$target = 'files/'.$newname;
move_uploaded_file( $_FILES['file']['tmp_name'], $target);

if (file_exists("files/{$newname}")) {
echo "Uploaded!";
}
?>

0 个答案:

没有答案