【发布时间】:2016-10-18 21:21:28
【问题描述】:
我有一个 html 表单来上传文件(我使用 php 进行上传)。我想显示使用 ajax 上传的结果(我是新手,所以我可能会错过一些非常简单的东西),但是,我的代码目前没有这样做。我读了很多,尝试了很多东西,但都是徒劳的,所以最后我决定寻求帮助。
HTML 和 AJAX
<script type="text/javascript">
( function( $ ) {
$('form').ajaxForm({
type: "POST",
url: "Upload.php",
data: $('#upload').serialize(),
dataType: "html",
timeout: 15000,
success: function( data ) {
alert( data );
}
});
})( jQuery );
</script>
<form enctype="multipart/form-data" method="post" id="upload">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<h2>File to upload</h2>
<input name="userfile" type="file" class='file'/>
<input type="submit" name="send" value="Upload File" />
</form>
PHP
try
{
if ( $_POST["send"] )
{
if ( isset( $_FILES['userfile'] ) )
{
require_once "FileUploader.php";
$fileUploader = new FileUploader();
if ( $fileUploader->moveFile() )
{
echo "Success";
}
echo "Error";
}
}
}
catch( \Exception $e )
{
echo "\n" . $e->getMessage();
exit();
}
目前,警报(数据);导致消息 NULL。控制台中没有错误。
【问题讨论】:
-
可能只是因为
dataType: "json",改成dataType: "html", -
你看过浏览器开发者工具中的AJAX请求/响应吗?您是否在项目中包含了 jQuery 库?是否报告了任何错误?你是在网络服务器上运行它吗?
-
你不能上传这样的文件,你需要一个
FormData对象来发送它。 -
请注意,如果您的前 2 个
if语句的条件不满足,则脚本将不输出任何内容。你得到的结果是什么...... -
您似乎将标准 jQuery ajax 语法与表单上传插件混合在一起,所以我不知道发生了什么。但是如果你真的期望 json 回来,你应该确保你的 php 脚本输出有效的 json。现在您要么输出文本,要么不输出任何内容,并且两者都不是有效的 json。
标签: javascript php jquery ajax