[英]Fileupload using Ajax, Jquery
在編碼方面相對較新,但是仍然存在一些問題。 我的主要問題基本上是,我選擇上傳的文件沒有最終出現在服務器上的toimport文件夾中,盡管該功能顯示成功。 如果您可能知道此問題的解決方案,請提供幫助。
來自Upload_form.php的腳本:
<script>
// Wir registrieren einen EventHandler für unser Input-Element (#uploadFile)
// wenn es sich ändert
$('body').on('change', '#uploadFile', function() {
var data = new FormData(); // das ist unser Daten-Objekt ...
data.append('file', this.files[0]); // ... an die wir unsere Datei anhängen
$.ajax({
url: 'upload.php', // Wohin soll die Datei geschickt werden?
data: data, // Das ist unser Datenobjekt.
type: 'POST', // HTTP-Methode, hier: POST
processData: false,
contentType: false,
// und wenn alles erfolgreich verlaufen ist, schreibe eine Meldung
// in das Response-Div
success: function() { $("#responses").append("Datei erfolgreich hochgeladen");
}
});
});
</script>
upload.php的
$target_dir = "toimport/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$FileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Allow certain file formats
if($FileType != "xlsx" && $FileType != "xls" && $FileType != "csv"
&& $FileType != "gif" ) {
echo "Sorry, only XLSX, XLS & CSV files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
enctype: 'multipart/form-data',
到$ .ajax <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Page Title</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script> <script> $(function () { $('body').on('change', '#uploadFile', function () { console.log('asdfsadfa'); var file_data = $('#uploadFile').prop('files')[0]; var form_data = new FormData(); form_data.append('file', file_data); $.ajax({ url: "upload.php", type: "POST", data: form_data, contentType: false, cache: false, enctype: 'multipart/form-data', processData: false, success: function (data) { console.log(data); $("#responses").append("Datei erfolgreich hochgeladen"); } }); }); }) </script> </head> <body> <input type="file" id="uploadFile" /> <div id="responses"></div> </body> </html>
PHP代碼:
<?php
$target_dir = "toimport/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);
$uploadOk = 1;
$FileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Allow certain file formats
if ($FileType != "xlsx" && $FileType != "xls" && $FileType != "csv"
&& $FileType != "gif") {
echo "Sorry, only XLSX, XLS & CSV files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
echo "The file ". basename($_FILES["file"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.