2014-11-17 3 views
0

코드를 다음에서 썸네일을 생성하는 PHP를 사용하고 있지만 건가요 PHP에서 엄지 손톱을 만들 수 없습니다 여러 개의 파일 을 업로드하고 있기 때문에내가 코드를 실행하면 내가 ERROR 다음 얻을

Notice: Undefined variable: phpThumb in C:\Users\logon\Documents\NetBeansProjects\rename multiple file with rename frm single input\for.php on line 42 
Fatal error: Call to a member function setSourceFilename() on a non-object in C:\Users\logon\Documents\NetBeansProjects\rename multiple file with rename frm single input\for.php on line 42 

어떻게 모든 편대 이미지에 대해 엄지 손가락을 만들려면 어떻게해야합니까 엄지

<?php 

$newname = uniqid() . '_' . time(); 
$file1 = isset($_FILES['files']['name'][0]) ? $_FILES['files']['name'][0] : null; 
$file2 = isset($_FILES['files']['name'][1]) ? $_FILES['files']['name'][1] : null; 
$file3 = isset($_FILES['files']['name'][2]) ? $_FILES['files']['name'][2] : null; 
$file4 = isset($_FILES['files']['name'][3]) ? $_FILES['files']['name'][3] : null; 
$file5 = isset($_FILES['files']['name'][4]) ? $_FILES['files']['name'][4] : null; 
if (isset($_FILES['files'])) { 
    $errors = array(); 
    foreach ($_FILES['files']['tmp_name'] as $key => $tmp_name) { 
     $file_name = $key . $_FILES['files']['name'][$key]; 
     $file_size = $_FILES['files']['size'][$key]; 
     $file_tmp = $_FILES['files']['tmp_name'][$key]; 
     $file_type = $_FILES['files']['type'][$key]; 
     if ($file_size > 2097152) { 
      $errors[] = 'File size must be less than 2 MB'; 
     } 
     $desired_dir = "user_data"; 
     if (empty($errors) == true) { 
      if (is_dir($desired_dir) == false) { 
       mkdir("$desired_dir", 0700);  // Create directory if it does not exist 
      } 
      if (is_dir("$desired_dir/" . $file_name) == false) { 
       move_uploaded_file($file_tmp, "$desired_dir/" . $newname . $file_name); 
      } else {         // rename the file if another one exist 
       $new_dir = "$desired_dir/" . $newname . $file_name; 
       rename($file_tmp, $new_dir); 
      } 
     } else { 
      print_r($errors); 
     } 
    } 
    if (empty($error)) { 
     echo "FILE : $file1<br>"; 
     echo "FILE : $file2<br>"; 
     echo "FILE : $file3<br>"; 
     echo "FILE : $file4<br>"; 
     echo "FILE : $file5<br>"; 

//thumb creation 
     $files = array("$file1", "$file1", "$file1", "$file1", "$file1"); 
     foreach ($files as $file) { // here's part 1 of your answer 
      $phpThumb->setSourceFilename($file); 
      $phpThumb->setParameter('w', 100); 
      $outputFilename = "thumbs/" . $file; 

      if ($phpThumb->GenerateThumbnail()) { 
       if ($phpThumb->RenderToFile($outputFilename)) { // here's part 2 of your answer 
        // do something on success 
       } else { 
        //failed 
       } 
      } else { 
       // failed 
      } 
     } 
    } 
} 
?> 
여러 이미지를 업로드하고 생성
PHP 처리 코드
+2

'$ phpThumb' 개체를 만들어야합니다 (이 변수는 정의하지 않았습니다)! '$ phpThumb = new xY();' – Rizier123

+0

그러나 $ phpThumb-> setParameter ('w', 100);를 사용하고 있습니다. –

+0

그것은'object'의 함수 호출입니다! 그러나'$ phpThumb'은 정의되지 않았으며'object'가 아닙니다! – Rizier123

답변

1

는 일을 반영하여 다시 편집 e는 사용자 경험이 있어야하는 방법에 대한 새로운 포스터입니다. 이제 5 개의 파일을 미리보기하거나 수동으로 선택하여 드래그 앤 드롭이 가능합니다. 드래그 드롭은 아약스 게시물에 의해 제출되므로 콘솔에서 결과를 확인하십시오. 디스플레이 및 흐름을 간소화해야하지만 기술적으로 유용한 예를 보여줍니다. 동일한 PHP 코드가 두 결과를 처리합니다.

<html> 
    <body> 
     <pre><? 
      print_r($_FILES); //SHOW THE ARRAY 

      foreach ($_FILES as $file) { 
       if (!$file['error']) { 
        //PROCESS THE FILE HERE 
        echo $file['name']; 
       } 
      } 
     ?></pre> 

     <script src="http://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript"></script> 
     <script type="text/javascript"> 

      var fd = new FormData(); 
      $(document).ready(function() { 

       //submit dragdropped by ajax 
       $("#dropsubmit").on("click", function(e) { 
        $.ajax({   
         data: fd, 
         processData: false, 
         contentType: false, 
         type: 'POST', 
         success: function(data){ 
          //FILES POSTED OK! REDIRECT 
          console.log(data); 
         } 
         }); 
       }) 

       var dropzone = $("#dropzone"); 
       dropzone.on('dragenter', function (e) { 
        $(this).css('background', 'lightgreen'); 
       }); 

       //dropped files, store as formdata 
       dropzone.on('dragover', stopPropagate); 
       dropzone.on('drop', function (e) { 
        stopPropagate(e) 
        $(this).css('background', 'white'); 
        var files = e.originalEvent.dataTransfer.files; 

        for (var i = 0; i < files.length; i++) { 
         preview(files[i]) 
         fd.append('file' + (i + 1), files[i]); 
         if (i >= 5) continue 
        } 

       }); 
       function stopPropagate(e) { 
        e.stopPropagation(); 
        e.preventDefault(); 
       } 


       if (window.File && window.FileList && window.FileReader) { 
        $("input[type=file]").on("change", function(e) { 
         preview(e.target.files[0]) 
        }); 
       } else { 
        alert("Your browser doesn't support to File API") 
       } 

       function preview(item) { 
        var fileReader = new FileReader(); 
        fileReader.onload = (function(e) { 
         var file = e.target; 
         $("<img></img>", { 
          class: "imageThumb", 
          src: file.result, 
          title: file.name, 
         }).appendTo("#images"); 
        }); 
        fileReader.readAsDataURL(item); 
       } 
      }); 
     </script> 

     <div id="dropzone" style="width:100px;height:100px;border:2px dashed gray;padding:10px">Drag & Drop Files Here</div> 
     <input type="button" id="dropsubmit" value="Submit dropped files" /> 
     <hr> 
     <form method="post" enctype="multipart/form-data"> 
      <input id="file1" name="file1" type="file"/><br> 
      <input id="file2" name="file2" type="file"/><br> 
      <input id="file3" name="file3" type="file"/><br> 
      <input id="file4" name="file3" type="file"/><br> 
      <input id="file5" name="file3" type="file"/><br> 
      <input name="submit" type="submit" value="Upload files" /> 
     </form><div id="images"></div> 
    </body> 
</html> 
관련 문제