2016-10-14 3 views
2

나는 여러 파일을 업로드하고 각 파일 URL을 출력하기 위해 dropzone JS 플러그인과 PHP를 사용하려고합니다.여러 번 업로드 PHP

지금까지이 있습니다

$upload_dir = 'files'; 

    for($i=0; $i<count($_FILES['file']['tmp_name']); $i++) { 
    $tempFile = $_FILES['file']['tmp_name'][$i]; 

    $uploadPath = dirname(__FILE__) . DIRECTORY_SEPARATOR . $upload_dir . DIRECTORY_SEPARATOR; 

    $mainFile = $uploadPath.time().'-'. $_FILES['file']['name'][$i]; 
    $mainFile_short = time().'-'. $_FILES['file']['name'][$i]; 

    if(move_uploaded_file($tempFile,$mainFile)) { 
    } 
    } 

그래도 난이 일을 할 수없는 것, 내가 잘못된거야 어디 모르겠어요. 어떤 아이디어가 좋을 것입니다!

+2

업로드가 항상 성공한다고 가정합니다. 나쁜 가정. 실패를 가정하고, 실패를 확인하고, 성공을 즐거운 놀라움으로 간주합니다. 이유가있어 $ _FILES에'[ 'error']'매개 변수가 있습니다 ... –

+0

MarcB가'error' 값을 확인하는 것과 함께 서버 로그에서 오류를 확인하고 오류가 있는지 확인하십시오 클라이언트 측 (dev 툴 콘솔). 그 외에 우리는 더 많은 정보가 필요합니다 : JS가 유효한 Ajax POST 요청을하고 있습니까? Dropzone에 유효한 파일 객체를 제공하고 있습니까? 파일이 최대 업로드/최대 게시 크기보다 큽니다. –

+0

음, var_dump, print_r 및 die와 같은 디버깅을 편리하게 사용할 수있는 예입니다. 양식에서 enctype = "multipart/form-data"로 확인하십시오. –

답변

1
$img = $_FILES['file']; 
$upload_dir = 'files'; 

if(!empty($img)) 
{ 
    $img_desc = reArrayFiles($img); 
    print_r($img_desc); 

    foreach($img_desc as $val) 
    { 
     $tempFile = $val['tmp_name']; 

     $uploadPath = dirname(__FILE__) . DIRECTORY_SEPARATOR . $upload_dir . DIRECTORY_SEPARATOR; 

     $mainFile = $uploadPath.time().'-'. $val['name']; 
     $mainFile_short = time().'-'. $val['name']; 

     if(move_uploaded_file($tempFile,$mainFile)) { 
     } 
    } 
} 
+0

'$ val' 또는'$ var'? – JazZ

+0

$ val :) 죄송합니다, 내 실수 –

+0

$ val [ "name"] 또는 $ val을 $ var로 변경하십시오. –