xmlhttprequest 请求已发送,但代码未执行?
xmlhttprequest request sent, but code not executed?
所以,我正在使用我在 WWW 上下载的 jQuery 上传脚本。
这是我的 JavaScript 代码:
$(document).ready(function()
{
var settings = {
url: "upload.php",
method: "POST",
allowedTypes:"pdf,xls,doc,docx,xlsx",
fileName: "name",
multiple: true,
onSuccess:function(files,data,xhr)
{
$("#status").html("<font color='green'>Upload is successed</font>");
},
onError: function(files,status,errMsg)
{
$("#status").html("<font color='red'>Upload is failed: " + errMsg + "</font>");
},
showDelete:true,
deleteCallback: function(data,pd)
{
for(var i=0;i<data.length;i++)
{
$.post("delete.php",{op:"delete",name:data[i]},
function(resp, textStatus, jqXHR)
{
//Show Message
$("#status").html("<font color='red'>File deleted.</font>");
});
}
pd.statusbar.hide(); //You choice to hide/not.
}
};
$("#mulitplefileuploader").uploadFile(settings);
});
这是我的 "upload.php":
<?php
include_once("_assets/_pages/db.php");
$output_dir = "_files/";
if(isset($_FILES["myfile"]))
{
$ret = array();
$error = $_FILES["myfile"]["error"];
//You need to handle both cases
//If Any browser does not support serializing of multiple files using FormData()
if(!is_array($_FILES["myfile"]["name"])) //single file
{
$fileName = $_FILES["myfile"]["name"];
move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir.$fileName);
$ret[]= $fileName;
$sql = 'INSERT INTO `Files` (FileName, UploadDate, DownloadCount) VALUES ($filename, CURRENT_TIMESTAMP, 0)';
$db->query($sql);
}
else //Multiple files, file[]
{
$fileCount = count($_FILES["myfile"]["name"]);
for($i=0; $i < $fileCount; $i++)
{
$fileName = $_FILES["myfile"]["name"][$i];
move_uploaded_file($_FILES["myfile"]["tmp_name"][$i],$output_dir.$fileName);
$ret[]= $fileName;
$sql = 'INSERT INTO `Files` (FileName, UploadDate, DownloadCount) VALUES ($filename, CURRENT_TIMESTAMP, 0)';
$db->query($sql);
}
}
echo json_encode($ret);
}
?>
我的 upload.php 没有将文件放入“_files/”,也没有向我的数据库插入任何内容?
我做错了什么?
其他问题:您是否推荐任何其他设计良好(bootstrap-友好)jQuery 文件上传处理程序?
我想,如果没有显示任何文件...您的表单中可能缺少 enctype="multipart/form-data"
。
PHP 正在寻找 isset($_FILES["myfile"]),但是,您永远不会在 JS 中定义任何名为 'myfile' 的东西。我的猜测是你的 if(isset()) 被纯粹跳过,没有错误,状态 200 OK.
所以,我正在使用我在 WWW 上下载的 jQuery 上传脚本。
这是我的 JavaScript 代码:
$(document).ready(function()
{
var settings = {
url: "upload.php",
method: "POST",
allowedTypes:"pdf,xls,doc,docx,xlsx",
fileName: "name",
multiple: true,
onSuccess:function(files,data,xhr)
{
$("#status").html("<font color='green'>Upload is successed</font>");
},
onError: function(files,status,errMsg)
{
$("#status").html("<font color='red'>Upload is failed: " + errMsg + "</font>");
},
showDelete:true,
deleteCallback: function(data,pd)
{
for(var i=0;i<data.length;i++)
{
$.post("delete.php",{op:"delete",name:data[i]},
function(resp, textStatus, jqXHR)
{
//Show Message
$("#status").html("<font color='red'>File deleted.</font>");
});
}
pd.statusbar.hide(); //You choice to hide/not.
}
};
$("#mulitplefileuploader").uploadFile(settings);
});
这是我的 "upload.php":
<?php
include_once("_assets/_pages/db.php");
$output_dir = "_files/";
if(isset($_FILES["myfile"]))
{
$ret = array();
$error = $_FILES["myfile"]["error"];
//You need to handle both cases
//If Any browser does not support serializing of multiple files using FormData()
if(!is_array($_FILES["myfile"]["name"])) //single file
{
$fileName = $_FILES["myfile"]["name"];
move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir.$fileName);
$ret[]= $fileName;
$sql = 'INSERT INTO `Files` (FileName, UploadDate, DownloadCount) VALUES ($filename, CURRENT_TIMESTAMP, 0)';
$db->query($sql);
}
else //Multiple files, file[]
{
$fileCount = count($_FILES["myfile"]["name"]);
for($i=0; $i < $fileCount; $i++)
{
$fileName = $_FILES["myfile"]["name"][$i];
move_uploaded_file($_FILES["myfile"]["tmp_name"][$i],$output_dir.$fileName);
$ret[]= $fileName;
$sql = 'INSERT INTO `Files` (FileName, UploadDate, DownloadCount) VALUES ($filename, CURRENT_TIMESTAMP, 0)';
$db->query($sql);
}
}
echo json_encode($ret);
}
?>
我的 upload.php 没有将文件放入“_files/”,也没有向我的数据库插入任何内容? 我做错了什么?
其他问题:您是否推荐任何其他设计良好(bootstrap-友好)jQuery 文件上传处理程序?
我想,如果没有显示任何文件...您的表单中可能缺少 enctype="multipart/form-data"
。
PHP 正在寻找 isset($_FILES["myfile"]),但是,您永远不会在 JS 中定义任何名为 'myfile' 的东西。我的猜测是你的 if(isset()) 被纯粹跳过,没有错误,状态 200 OK.