我已经尝试研究几乎所有内容,但我没有找到修复代码的最终解决方案。正如您在调试图像中看到的那样,可以读取文件道具。在 PHP 中,我的结果print_r($_FILES); exit;是一个空数组。问题似乎是event.preventDefault();。提交必须是,prevent但文件仍然必须生成。
$("#cardgeneratorForm").on("submit", function (event) {
event.preventDefault();
var artworkimageinput = $('#inputPicture').prop('files')[0];
var artworkimage = new FormData();
artworkimage.append('file', artworkimageinput);
$.ajax({
url: 'generatecard.php',
method: 'POST',
data: {
artworkimage: artworkimage,
},
cache: false,
processData: false,
contentType: false,
success : function(filename){
},
fail: function(){
}
});
PHP
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
move_uploaded_file($_FILES['file']['tmp_name'], 'artwork/' . $_FILES['file']['name']);
}
HTML
<form class="cardgeneratorForm" id="cardgeneratorForm" method="post" enctype="multipart/form-data" action="generatecard.php">
<div class="inputPicture-container custom-file col-12">
<input type="file" name="file" class="custom-file-input" accept='.jpg, .jpeg, .png, .webp' id="inputPicture" lang="en">
<label class="custom-file-label" for="inputPicture">Card Picture</label>
</div>
<button class="btn btn-primary btn-block btn-xs reset-button">
<span><i class="fas fa-redo"></i>Reset</span>
</button>
</form>

