我搜索了 stackoverflow 和谷歌,发现了很多关于这个主题的材料,但没有一个能帮助我掌握我想要实现的目标。
我正在尝试创建一个表单,该表单异步发送表单数据并上传单个图像,通过相同的 php 脚本调整大小、重命名并将其保存到指定目录。
如果以传统方式发送数据,一切都会完美运行。
当我试图将 XHR 集成到处理非文件表单数据的现有 jQuery 中,并将该文件与其他所有内容一起发送到 PHP 脚本时,我会遇到困难。
我对JS不是特别精通,我非常处于学习状态。到目前为止,我发现的所有内容都是仅上传文件的示例形式,侧重于上传进度、多个文件上传和拖放(我对这个项目不感兴趣)。
我不喜欢复制代码并试图将其与我编写的内容一起使用,我宁愿了解如何去做......
有没有人遇到任何阅读材料/教程来演示和解释如何在标准 ajax 表单帖子中实现 ajax 文件上传?
提前致谢。
我正在使用的代码的简化示例:
<script>
$('#editgig_form').submit(function(){
$('#ng_loading').fadeIn(500);
var eg_dataString = $('#editgig_form').serialize();
$.ajax({
type: "POST",
url: "Resorces/Components/GigDiary/edit_gig.php",
data: eg_dataString,
success: function(){
$('#giglist_canvas').load('Resorces/Components/GigDiary/refresh.php');
$('#ng_loading').fadeOut(500);
popupclose(edit_gig);
editmenu_selected = '';
}
});
return false;
});
</script>
-
<form id="editgig_form" method="post" enctype="multipart/form-data">
<input type="text" name="date" />
<input type="text" name="venue" />
<input type="file" name="image" />
</form>
-
<?php
date = date("Y-m-d", strtotime($_POST['date']));
venue = $_POST['venue'];
// SCRIPT TO RESIZE IMAGE, SAVE TO DIRECTORY
$update = "UPDATE gigdairy SET date="$date", venue="$venue", image="imgname";
mysql_query($update);
?>