0

我正在使用uploadify,尽管它可以正常工作,但它不会上传到文件夹中。我怎样才能让它复制?文件夹是 777。

如果需要,这是页面:

http://www.dilyurdu.com/uploadify/

// 脚本

$(function() {

$("#file_upload_1").uploadify({
    height        : 30,
    swf           : 'uploadify.swf',
    uploader      : 'uploadify.php',
    width         : 120
});
});

//php

$targetFolder = '/uploads'; // Relative to the root

if (!empty($_FILES)) {
$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

4 回答 4

2

试试这个

<script type="text/javascript">
$(document).ready(function() {
 $(function() {
    $("#file_upload").uploadify({
            'uploader'       : '<?php echo base_url();?>flash/uploadify.swf',
            'script'         : '<?php echo base_url();?>scripts/uploadify.php',
            'folder'         : '/folder_name_where_you_want_to_upload/',
            'height'         : 30,
            'onError'        : function(event,queueID,fileObj,errorObj){
                    // alert(errorObj["type"]+" - "+errorObj["status"]+" - "+errorObj["text"]);
             },
            });
    });
});
</script>

并且在uploadify.php 中回显$targetPath,这样你就可以追踪它被上传的路径。

于 2012-07-27T11:20:28.173 回答
0

我在这里尝试了所有其他建议,但没有一个对我有用。然后我意识到 Uploadify 的 3.2 版(可能还有以前的版本)需要时间戳和散列令牌才能完成上传。

首先,我必须将脚本从外部 JS 文件移动到我的 PHP 文件中,以便我可以从 PHP 中获取时间戳。(您也可以通过隐藏的输入值或其他方法来执行此操作,但这是最简单的方法。)然后我必须在 Uploadify 调用中添加“formData”选项以及一些获取时间戳并将其散列的 PHP 代码一个独特的盐(您应该将其更改为随机字符串):

<?php $timestamp = time();?>
<script>
$('#file_upload').uploadify({
    'swf'      : '/uploadify/uploadify.swf',
    'uploader' : '/uploadify/uploadify.php',
    'formData' : {
        'timestamp' : '<?php echo $timestamp;?>',
        'token'     : '<?php echo md5("unique_salt" . $timestamp);?>'
    }
});
</script>

尽管在 3.2 版本中似乎需要此代码,但在实现文档中并未提及。我必须查看下载包中的 index.php 文件才能找到它。

于 2013-05-10T18:19:24.983 回答
0

我有同样的问题。在尝试了这篇文章中提到的所有内容以及有关该主题的其他帖子之后,我意识到我必须设置目标文件夹的绝对路径。所以,对我有用的是在uploadify.php中更改以下内容:

$targetFolder = '/var/www/vhosts/DOMAIN/httpdocs/uploads'

然后我把 DOCUMENT_ROOT FROM $targetPath 去掉,只留下 $targetFolder,如下: $targetPath = $targetFolder;

如上所述,我还在我的 JS 调用中添加了时间戳和令牌。

现在一切正常。希望这可以帮助某人:-)

于 2013-08-13T12:23:04.220 回答
0

问题在于上传文件夹的路径我的路径:

$targetFolder = '../../upload/orginal'; // 相对于根

于 2014-02-24T20:29:54.910 回答