我正在尝试在网站上实现uploadify。
它说文件已上传,但是当我查看上传文件夹时,什么都没有。
我没有运气读过其他类似的帖子。
我确实阅读了另一个问题的答案:
我在 Linux 机器上遇到了类似的问题。原来,我服务器上的 PHP 配置是 cuplrit。PHP 在安全模式下运行。由于我通过 FTP 上传了 Uploadify 脚本,因此脚本文件与我的 FTP 用户详细信息一起存储在文件系统中。由于 PHP 的临时文件夹归服务器根用户所有,因此我的 UID 不匹配,即临时上传文件归根用户所有,而试图移动它的上传脚本归 FTP 用户所有。那把它弄坏了。
为了解决这个问题,我将uploadify php脚本的所有权更改为root,并从那里开始工作。
我对服务器端编码知之甚少,因为我更像是一个前端人员。如何更改权限?我正在使用 1&1 托管。
这是 FileZilla 中服务器上文件的屏幕截图:
编辑
我尝试上传一个 ZIP 文件,它说上传成功但没有上传。但是,我想知道我的脚本是否有错误,因为 PHP 脚本中的这一行不应该允许我上传 ZIP 文件:
// Validate the file type
$fileTypes = array('jpg','jpeg','gif','png'); // File extensions
脚本不应该拒绝 zip 文件吗?
以下是我正在使用的代码,以防脚本而不是我的服务器出现错误:
JS
$(function() {
$('#file_upload').uploadify({
'swf' : 'uploadify.swf',
'uploader' : 'uploadify.php',
'onUploadSuccess' : function(file, data, response) {
alert('The file ' + file.name + ' was successfully uploaded with a response of ' + response + ':' + data);
}
});
});
PHP
<?php
$targetFolder = '/uploads/'; // Relative to the root
$verifyToken = md5('unique_salt' . $_POST['timestamp']);
if (!empty($_FILES) && $_POST['token'] == $verifyToken) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
$targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name'];
// Validate the file type
$fileTypes = array('jpg','jpeg','gif','png'); // File extensions
$fileParts = pathinfo($_FILES['Filedata']['name']);
if (in_array($fileParts['extension'],$fileTypes)) {
move_uploaded_file($tempFile,$targetFile);
echo '1';
} else {
echo 'Invalid file type.';
}
}
?>