0

我正在尝试在网站上实现uploadify。

它说文件已上传,但是当我查看上传文件夹时,什么都没有。

我没有运气读过其他类似的帖子。

我确实阅读了另一个问题的答案:

我在 Linux 机器上遇到了类似的问题。原来,我服务器上的 PHP 配置是 cuplrit。PHP 在安全模式下运行。由于我通过 FTP 上传了 Uploadify 脚本,因此脚本文件与我的 FTP 用户详细信息一起存储在文件系统中。由于 PHP 的临时文件夹归服务器根用户所有,因此我的 UID 不匹配,即临时上传文件归根用户所有,而试图移动它的上传脚本归 FTP 用户所有。那把它弄坏了。

为了解决这个问题,我将uploadify php脚本的所有权更改为root,并从那里开始工作。

我对服务器端编码知之甚少,因为我更像是一个前端人员。如何更改权限?我正在使用 1&1 托管。

这是 FileZilla 中服务器上文件的屏幕截图:

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.';
}
}
?>
4

2 回答 2

2

看起来好像令牌验证码是问题所在。如果您删除该功能,上传应该通过:)

您可以if()通过注释掉该比较吗?

if (!empty($_FILES) && $_POST['token'] == $verifyToken) {行更改为:

if (!empty($_FILES) /* && $_POST['token'] == $verifyToken */) {

于 2013-11-11T14:56:39.473 回答
0

在我的 Linux PHP 安装中,$fileTypes 似乎是区分大小写的。'image.jpg' 会上传,但 'image.JPG' 不会。

改变

$fileTypes = array('jpg','jpeg','gif','png');

$fileTypes = array('jpg','JPG','jpeg','JPEG','gif','GIF','png','PNG');
于 2014-01-28T15:37:31.853 回答