【发布时间】:2011-07-18 05:00:03
【问题描述】:
我发现了一些与我有相同问题的帖子,但是没有提出解决方案。我不是 100% 确定该怎么做,但希望您能提供帮助。
我正在尝试使用 Uploadify 上传文件,但出现以下情况:
- 浏览文件成功(因此我的“脚本”和“上传”属性是正确的)
- 进度条显示“100%”并完成。
- onComplete 触发说上传成功(根据警告的路径,“文件夹”属性是正确的。)
- 如果我在任何输出之前终止我的脚本,则不会发生 #3 步骤 - 因此它会到达指定的“脚本”。输出后,脚本不会死。
- 文件系统中未找到文件
不确定这怎么可能——据我所知,一切都是正确的。
这是我的代码:
<script type="text/javascript">
$(document).ready(function() {
$("#addimage").validationEngine();
$('#imagefile').uploadify({
'uploader': "/js/uploadify/uploadify.swf",
'fileExt': "*.jpg;*.jpeg;*.png;*.gif",
'buttonText': "Browse...",
'script': "/js/uploadify/uploadify.php",
'cancelImg': "/js/uploadify/cancel.png",
'folder': "/uploads",
'fileDesc': 'Only *.jpg, *.jpeg, *.png, *.gif are allowed',
'auto': true,
'onComplete': function(event, ID, fileObj, response, data) {
$('#name').val('Please edit this text to add a description...');
alert('Uploaded ' + fileObj.name + ' to ' + fileObj.filePath + '.');
}
});
});
</script>
<input type="file" id="imagefile" name="imagefile" />
<?php
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
$targetFile = str_replace('//', '/', $targetPath) . 'image_' . date('YmdHis') . '_' . $_FILES['Filedata']['name'];
move_uploaded_file($tempFile,$targetFile);
echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);
}
?>
PHP 脚本的唯一更改是我更改的 targetFile 的名称,以确保某种唯一的文件名(虽然不是万无一失的),但脚本与已发布的相同(为简洁起见,此处删除了 cmets)。
谁能告诉我为什么 Uploadify 表明文件上传成功,但上传目录中不存在文件?我使用的是 Windows,PHP5.3,并且上传文件夹是可写的(我可以在没有 Uploadify 的情况下上传文件,但不能使用它)
提前致谢!
科布斯
【问题讨论】: