2012-03-21 112 views
1

Hy,我需要上传一系列文件到服务器(在特定的一组图像中)。 我需要一个文件输入来选择多个文件(也在IE中),我没有权限直接用PHP写在服务器上(权限是775,但FTP和Apache用户分成2个不同的组),所以我需要使用FTP连接(我已经可以使用单个文件来完成此操作)。 有人可以通知我吗? 在此先感谢HTML/PHP/JS选择多个文件并通过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; 
} 

回答

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

+0

谢谢你的回答!我正在尝试使用它,但我对演示和文档中使用的版本感到困惑:S同时尝试传递scriptData参数......您是否有一个工作示例?或者我可以发布我的代码... – Michele 2012-03-21 11:44:08

+0

看到我上面编辑过的帖子。 – Nick 2012-03-21 11:47:28

+0

如果我按照你的建议更改按钮将不起作用...你可以在这里看到我的测试页面:[link](http://wpr.it/ADMIN/back_saver.php) – Michele 2012-03-21 11:52:46