我有一个应用程序here,用户在其中添加一个表行,它将在行中显示一个文件输入。现在我遇到的问题是,如果你使用输入选择一个文件并点击“上传”,它总是说上传文件时出错,任何文件都会出现这种情况。
我已将文件的权限设置为能够读取和写入,但它仍然表示上传文件时出错。如果有人使用过MAx的AJAX文件上传器并且之前遇到过这个问题但是后来修复了它,那么我可以问你是如何解决这个问题的。如果没有,那么我是否有其他方法可以解决此问题,以便它停止显示错误消息,以便完全合法的文件上传,而不是显示文件上传的成功消息。
当我在此链接中测试使用不同服务器的相同代码:[er5325.aisites.com/scripts/stack/test.html 时,它不会显示上传合法文件时出现错误消息。
我正在使用大学的服务器,即helios.hud.ac.uk
以下是文件输入的代码以及停止和开始上传的功能:
<script type="text/javascript">
var sourceForm;
function insertQuestion(form) {
var $tbody = $('#qandatbl > tbody');
var $tr = $("<tr class='optionAndAnswer' align='center'></tr>");
var $image = $("<td class='image'></td>");
var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='startUpload(this);' class='imageuploadform' >" +
"<p class='imagef1_upload_process' align='center'>Loading...<br/><img src='Images/loader.gif' /><br/></p><p class='imagef1_upload_form' align='center'><br/><label>" +
"File: <input name='fileImage' type='file' class='fileImage' /></label><br/><label>" +
"(jpg, jpeg, pjpeg, gif, png, tif)</label><br/><br/><label>" +
"<input type='submit' name='submitBtn' class='sbtn' value='Upload' /></label>" +
"</p> <iframe class='upload_target' name='upload_target' src='#' style='wclassth:0;height:0;border:0px;solclass #fff;'></iframe></form>");
$image.append($fileImage);
$tr.append($image);
$tbody.append($tr);
}
function startUpload(imageuploadform){
$(imageuploadform).find('.imagef1_upload_process').css('visibility','visible');
$(imageuploadform).find('.imagef1_upload_form').css('visibility','hidden');
sourceForm = imageuploadform;
return true;
}
function stopUpload(success){
var result = '';
if (success == 1){
result = '<span class="msg">The file was uploaded successfully!<\/span><br/><br/>';
}
else {
result = '<span class="emsg">There was an error during file upload!<\/span><br/><br/>';
}
$(sourceForm).find('.imagef1_upload_process').css('visibility','hidden');
$(sourceForm).find('.imagef1_upload_form').html(result + '<label>File: <input name="fileImage" type="file"/><\/label><br/><label>(jpg, jpeg, pjpeg, gif, png, tif)</label><br/><br/><label><input type="submit" name="submitBtn" class="sbtn" value="Upload" /><\/label>');
$(sourceForm).find('.imagef1_upload_form').css('visibility','visible');
return true;
}
</script>
下面是上传文件的上传页面(imageupload.php):
<?php
// Edit upload location here
$destination_path = getcwd().DIRECTORY_SEPARATOR;
$result = 0;
$target_path = $destination_path . basename( $_FILES['fileImage']['name']);
if(@move_uploaded_file($_FILES['fileImage']['tmp_name'], $target_path)) {
$result = 1;
}
sleep(1);
?>
<script language="javascript" type="text/javascript">window.top.window.stopUpload(<?php echo $result; ?>);</script>
答案 0 :(得分:0)
我无法遵循您的代码,但函数startUpload(source_form)可能没有按照您的意愿执行操作。对局部变量使用与全局变量相同的名称,然后编写类似sourceForm = source_form;这不会有任何影响。也许你可以找到一种方法来避免全局变量,或者将局部变量重命名为不同的变量。
function startUpload(imageuploadform){
$(imageuploadform).find('.imagef1_upload_process').css('visibility','visible');
$(imageuploadform).find('.imagef1_upload_form').css('visibility','hidden');
sourceForm = imageuploadform;
return true;
}
我不知道这是否与错误有关,但会使你的代码变得不那么奇怪。
你测试过你的脚本可以写你正在尝试的文件吗?你有权访问服务器的日志来检查相关的错误吗?