HTML / PHP / JS选择多个文件并通过FTP上传

时间:2012-03-21 10:17:36

标签: php javascript jquery ftp

Hy,我需要将一系列文件上传到服务器(特定的一组图像)。 我需要单个文件输入来选择多个文件(也在IE中),我无权在服务器上直接用PHP编写(权限是775但FTP和apache用户分为2个不同的组)所以我需要使用FTP连接(我已经可以使用单个文件执行此操作)。 如果有人这样做,有人可以建议我吗? 提前致谢

米歇尔

编辑:我正在尝试使用uploadify作为尼克建议。

 <script type="text/javascript">
    $(document).ready(function() {
        $('#file_upload').uploadify({
            'uploader'  : 'JS/uploadify.swf',
            'script'    : 'upload.php',
            'cancelImg' : 'JS/cancel.png',
            'folder'    : 'TEST/UPLOADS',
            'auto'      : true,
            'multiple'  : true,
            'removeCompleted' : false,
            'queueSizeLimit' : 3,
            'queueID' : 'queue',
            'simUploadLimit' : 1
         );
    });
</script>

我试着把ftp连接和ftp_put放到upload.php中是对的吗? 如果我尝试添加'scriptData'参数,文档建议的$ _POST []无法访问它,为什么?

这里是我的测试链接:test

测试显示文件已上传但服务器文件夹中没有文件。

这是我的upload.php代码:

if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];                          // 1

    //$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';  // 2
    //$targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name']; // 3


    $ftp_server = "***";  //address of ftp server.
    $ftp_user_name = "***"; // Username
    $ftp_user_pass = "***";   // Password
    $conn_id = ftp_connect($ftp_server);
    ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 
    ftp_pasv ( $conn_id, true );

    if( ftp_fput($conn_id, 'TEST/' . $_FILES['Filedata']['name'], $tempFile, FTP_BINARY)){                       // 4
        echo true;
    }else{
        echo false;
    }

    ftp_close($conn_id);
} else {
    echo false;
}

1 个答案:

答案 0 :(得分:0)

要允许上传多个文件,我通常会使用uploadify 它的文档相当不错,而且使用起来非常简单。

您需要使用类似的东西才能保持连接打开并发送文件而不重新加载页面。

编辑:

您的代码应该是这样的:

<script type="text/javascript">
$(function() {
    $('#custom_file_upload').uploadify({
        'uploader'       : 'JS/uploadify.swf',
        'script'         : 'JS/uploadify.php',
        'cancelImage'      : 'JS/uploadify-cancel.png',
        'multi'          : true,
        'auto'           : true,
        'fileTypeExts'        : '*.jpg',
        'fileTypeDesc'       : 'Image Files (.JPG)',
        'queueID'        : 'custom-queue',
        'queueSizeLimit' : 3,
        'simUploadLimit' : 3,
        'sizeLimit'   : 10240000,
        'removeCompleted': false,
        'onDialogClose'   : function(queue) {
            $('#status-message').text(queue.filesQueued + ' files have been added to the queue.');
        },
        'onQueueComplete'  : function(stats) {
            $('#status-message').text(stats.successful_uploads + ' files uploaded, ' + stats.upload_errors + ' errors.');
        }
    });             
});
</script>

swf已更改为uploaderuploader已更改为script