Javascript jQuery文件上载未上载
这段PHP代码在我使用HTMLJavascript jQuery文件上载未上载,javascript,php,jquery,Javascript,Php,Jquery,这段PHP代码在我使用HTML时有效,但在我使用最底层的jQuery文件上传脚本时无效 我相信所有的.js和.css文件都已被记录并运行(测试) 我相信上传URL:doc\u upload.php',fileInputName:userfile'是正确的。不知道,因为没有显示错误 使用echogetcwd(),我相信我使用的是正确的路径 我只上传了一个1KB.TXT文件 我没有收到任何错误,并且所有错误报告都已打开并处于最大状态 还有一件事是不起作用的,我想说这可能会给你一个线索,那就是文件名旁
时有效,但在我使用最底层的jQuery文件上传脚本时无效
getcwd()代码>,我相信我使用的是正确的路径
$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>
$(文档).ready(函数(){
$('jqxFileUpload').jqxFileUpload({width:300,uploadUrl:'doc\u upload\u jquery.php',fileInputName:'userfile',autoUpload:true});
});
$('jqxFileUpload')。on('uploadStart',函数(事件){
var fileName=event.args.file;
$('#log').prepend('已开始上载:'+fileName+'
');
});
$('jqxFileUpload')。在('remove',函数(事件){
var fileName=event.args.file;
$('#log').prepend('删除的文件:'+fileName+'
');
});
$('jqxFileUpload')。on('uploadEnd',函数(事件){
var args=event.args;
var fileName=args.file;
var serverresponse=args.response;
});
mdpalow-
由于顶部的if语句,您可能没有收到任何错误或输出:
if (isset($_POST['submit']) && $_FILES['userfile']) {
尝试将其置于顶部以输出所有post变量,以便确定实际发送的post变量(如果有):
我以前做过文件上传,但没有使用这个特定的库——我猜它只是发送mulipart数据而不是POST变量。查看浏览器开发工具中的预览标题也可以了解发送的数据。问题在于jQuery插件通过AJAX上传文件。要解决此问题,请执行以下步骤:
- 将HTML和PHP代码保存在单独的文件中
- 在新的PHP文件中,删除isset($_POST['submit'])验证,因为没有提交
enctype
属性写入form
tag中?从我看来,我没有表单要求。在我看到的所有示例中,我没有看到一个带有表单标记。而且,当我添加表单标记时,它会破坏jQuery。谢谢…检查错误,检查控制台,确保文件夹具有写入权限,并且会话已启动。
如果这是您的完整输入,则需要id和/或name属性。将您的代码显示在“提交”按钮的位置,或者查看下面给出的答案。所需的全部内容是:uploadUrl:“doc\u upload\u jquery.php”,fileInputName:“userfile”。我不需要HTML。在我的专栏文章中,我说我不认为我真的是$u POST'ing,这可能已经被上面发布的答案所证实。我按照你的建议把它重新放进去,现在就放在那里,但还是没有显示。在chrome中使用开发工具是个好主意。它向我展示了一些东西。我已经将php部分剥离到最小值,并得到错误:未定义索引:tmpname。在这里查看$_文件的文档:我认为索引应该是“tmp_name”而不是“tmpname”。你和撒马尔罕都给出了一些很好的答案。然而,正是您建议使用内置的浏览器开发工具(我从来没有这样做过),最终开始给我提供很多线索。最后,决定将其分解为最低形式并找到:。把它放进去,一切都开始工作了。开发工具帮助我把所有的事情都解决了,包括了关于图像的第2部分。我喜欢我现在所处的位置,尽管我无法让页面刷新标题以显示新加载的文件,但我想用谷歌搜索更多内容,看看我是否能找到任何东西。完成。当我将php与代码的其余部分分离后,当我取出$\u POST时显示的所有错误都消失了。然而,在上传任何文件方面仍然没有什么神奇之处。
print_r($_POST);