当我使用HTML <input type="file">
时,这个PHP代码可以正常工作,但是当我在最底层使用jQuery文件上传脚本时却不行。
getcwd();
,我相信我正在使用正确的路径有一件事也是行不通的,我说的可能是一个线索,就是上传&amp;文件名旁边的取消按钮没有显示全部,但点击它们似乎确实有效。
Echo'ing $ _POST在提交时没有显示任何内容,但我认为这是一个javascript的东西;不确定,因为我是初学者(3个月)。
PHP页面
$filename = $_FILES['userfile']['name'];
$tmpname = $_FILES['userfile']['tmpname'];
$filesize = $_FILES['userfile']['size'];
$filetype = $_FILES['userfile']['type'];
$fp = fopen($tmpname, 'r');
$content = fread($fp, filesize($tmpname));
$content = addslashes($content);
fclose($fp);
if(!get_magic_quotes_gpc()) {
$filename = addslashes($filename);
}
$filename = preg_replace('/[ ]/', '~', $filename);
$document_folder = $_SESSION['users_id'];
$destfile = "../_documents/".$document_folder."/".$_FILES['userfile']['name'];
move_uploaded_file( $_FILES['userfile']['tmpname'], $destfile );
HTML页面
<link type="text/css" rel="Stylesheet" href="../jqx.base.css" />
<script type="text/javascript" src="../scripts/js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="../scripts/jqwidgets/jqxcore.js"></script>
<script type="text/javascript" src="../scripts/jqwidgets/jqxbuttons.js"></script>
<script type="text/javascript" src="../scripts/jqwidgets/jqxfileupload.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#jqxFileUpload').jqxFileUpload({ width: 300, uploadUrl: 'doc_upload_jquery.php', fileInputName: 'userfile', autoUpload: true });
});
$('#jqxFileUpload').on('uploadStart', function (event) {
var fileName = event.args.file;
$('#log').prepend('Started uploading: <strong>' + fileName + '</strong><br />');
});
$('#jqxFileUpload').on('remove', function (event) {
var fileName = event.args.file;
$('#log').prepend('Removed file: <strong>' + fileName + '</strong><br />');
});
$('#jqxFileUpload').on('uploadEnd', function (event) {
var args = event.args;
var fileName = args.file;
var serverResponce = args.response;
});
</script>
</head>
<body>
<div id="jqxFileUpload">
</div>
<div id="log" style="margin-top: 20px;"></div>
<br />
</body>
</html>
答案 0 :(得分:0)
mdpalow -
由于顶部的if语句,您可能无法获得任何错误或输出:
if (isset($_POST['submit']) && $_FILES['userfile']) {
尝试将它放在顶部以输出所有的帖子变量,以便您可以确定实际发送的帖子变量(如果有的话):
print_r($_POST);
我之前已经完成了文件上传,但没有使用这个特定的库 - 我的猜测是它只是发送mulipart数据而不是POST变量。查看浏览器开发人员工具中的预览标题也可以了解正在发送的数据。
答案 1 :(得分:0)
问题是jQuery插件通过AJAX上传文件。要解决此问题,请按照以下步骤操作: