【问题标题】:Posting file to server with dropzone使用 dropzone 将文件发布到服务器
【发布时间】:2014-07-14 00:37:20
【问题描述】:

我在我的 php 应用程序中使用 dropzone,但我无法将文件发布到服务器,我对 dropzone 比较陌生,已阅读文档但仍然遇到此类问题。

这是html代码:

<div id='dropzone'>

</div>

这是javascript代码:

<script type="text/javascript" src="js/dropzone.js"></script>

<script type="text/javascript">
    $(document).ready(function() {
        $("#dropzone").dropzone({ 
            url: "profile.php", 
            maxFilesize: 8, 
            paramName: "Displaypic", 
            addRemoveLinks: true 
        });
    });
</script>

我想了解如何将文件放入文件数组并从服务器端访问此类文件。

【问题讨论】:

    标签: php jquery file-upload dropzone.js


    【解决方案1】:

    Dropzone 只是用于创建堆栈的图像处理程序。实际上传不是由 dropzone 处理的,而是通过 php 或 javascript 处理的。我选择了php。我从不喜欢他们在教程中这样做的方式并且有几个问题,所以我想出了自己的方式。这是我的 uploads.php 文件。

    <?php 
    session_start();
    //The $_SESSION['x'] variable is serialized using 
    //     date("Y_m_d") . "-" . date("h_i_sa")
    //This allows the file names to appear like this at the end...
    //                              2015_07_07-12_35_22pm1.jpg
    //                              2015_07_07-12_35_22pm2.jpg
    $newname = $_SESSION['x']; 
    $ds = "/";  //1
    //My upload folder for the images.
    $storeFolder = "/photos";  
    $ext = "jpg"; // My Format is .jpg so I chose to restrict to jpg only!
    $_SESSION['count'] +=1;
    //count is added to the end of the file name so that each name is unique.
    $name = $newname.$_SESSION['count'] .'.'.$ext;
    
    if (!empty($_FILES)) {
      $tempFile = $_FILES['file']['tmp_name'];                       
    
      $targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds;  
    
      $targetFile =  $targetPath. $name;  
    
      //Change IP address for host
      $host = "10.10.10.10";
      $port = "21";
      $timeout = "300";
      $ftp = ftp_connect($host,$port,$timeout);
      // Change user and password
      $user = "user";
      $pass = "password";
      ftp_login($ftp,$user,$pass);
    
     $ret = ftp_nb_put($ftp, $targetFile, $tempFile, FTP_BINARY, FTP_AUTORESUME);
    
     while (FTP_MOREDATA == $ret)
       {
        // display progress bar, or someting
        $ret = ftp_nb_continue($ftp);
       }
    }  ?>
    

    【讨论】:

    • 不知道为什么你被否决了;认为这是一个非常好的服务器端实现。就个人而言,我选择将文件移动到文件夹而不是远程 FTP 连接,但您可能正在远程托管图像或其他东西。无论如何都赞成!
    猜你喜欢
    • 2014-03-10
    • 2013-12-29
    • 1970-01-01
    • 2015-06-14
    • 2018-10-11
    • 1970-01-01
    • 2017-09-25
    • 2013-09-17
    • 1970-01-01
    相关资源
    最近更新 更多