5

我有一个图像裁剪脚本,可以使用Jquery Jcrop 插件一次裁剪一个图像。现在我想上传更多图像并使用 for 循环一张一张地裁剪它们。

做这个的最好方式是什么?

我将输入字段设置为多个,以便它可以上传多个。

编辑:

我用$maxand编辑了下面的代码count。我认为我做错了。我该如何解决它,所以当我单击裁剪时,它会一个接一个地裁剪它们。

这是我的uploaded.php

    <?php 
         session_start();
         $max = count($_FILES['userfile']['name']);
         for($i = 0; $i < $max; $i++){
            $target = $_FILES['file'][$i];
         }

         $target = "data/uploads/"; 
         $target = $target . basename( $_FILES['filename']['name']) ; 
         $_SESSION['target_path'] = $target;

         $ok=1; 
         if(move_uploaded_file($_FILES['filename']['tmp_name'], $target)) 
         {
             echo "De afbeelding *". basename( $_FILES['filename']['name']). "* is geupload naar de map 'uploads'";
         } 
         else 
         {
             echo "Sorry, er is een probleem met het uploaden van de afbeelding.";
         } 
    ?> 

谢谢!

4

2 回答 2

1

我想你想要更像这样的东西:

<?php 
session_start();

$upload_dir = "data/uploads/"; 
for($i = 0; $i < 5; $i++){
     $target = $upload_dir . basename( $_FILES['file']['name'][$i]);
     if(move_uploaded_file($_FILES['file']['tmp_name'][$i], $target)) {
         echo "De afbeelding *". basename( $_FILES['file']['name'][$i]). "* is geupload naar de map 'uploads'";
     } else {
         echo "Sorry, er is een probleem met het uploaden van de afbeelding.";
     }
}
于 2013-03-18T06:04:19.597 回答
1

你需要检查几件事

1) 要上传文件,请阅读: http: //php.net/manual/en/features.file-upload.multiple.php - 特别input name="userfile[]"是在 HTML 中,服务器上的文件显示为$_FILES['userfile']['name'][0],...,$_FILES['userfile']['name'][N]

2)move_uploaded_file()是一项安全检查,以确保文件有效,没有它就不要离开家 :-)

3)我推荐imagemagick库(http://php.net/manual/en/imagick.cropimage.php),我知道,Jcrop 演示使用 GD 库,但值得您花时间查看 imagemagick。

4)最后,如果一切都失败了,请使用print_r($variable)以确保文件正在进入您的服务器。

5) 有时可能是系统管理问题,例如不可写 /tmp 文件夹、磁盘已满、php.ini 中的上传大小限制和 Web 服务器内置超时。检查 phpinfo() 也有帮助

于 2013-03-21T06:19:51.007 回答