2016-04-08 38 views
1

Kodumda bir sorun yaşıyorum. Yanlış bir şey yaptığımı biliyorum, ama ne olduğunu bilmiyorum. Fotoğraf yükleme formum var ve zaten mevcut değilse bir klasör oluşturmalı ve resmi bu klasöre yüklemelidir.Klasör oluştur ve aynı anda dosya yolla

Bu yüzden benim sorunum Ben her ikisi de aynı anda yapamam e. Klasör zaten mevcutsa, resim yüklenir, ancak klasör yoksa, yalnızca klasörü oluşturur ve bu resim o klasöre giden başka bir yükleme yapmak zorundayım.

İşte kodum.

index.html

<form action="" method="post" enctype="multipart/form-data"> 
<input id="input-image-3" class="file-loading" type="file" id="file" name="files[]" multiple="multiple" accept="image/*" /> 
</form> 

     <script> 
     $("#input-image-3").fileinput({ 
      uploadUrl: "upload.php", 
      allowedFileExtensions: ["jpg","jpeg", "png", "gif"], 
      maxImageWidth: 100, 
      maxImageHeight: 100, 
      resizePreference: 'height', 
      maxFileCount: 10, 
      resizeImage: true, 


     }).on('filepreupload', function() { 
      $('#kv-success-box').html(''); 
     }).on('fileuploaded', function(event, data) { 
      $('#kv-success-box').append(data.response.link); 
      $('#kv-success-modal').modal('show'); 
     }); 

     </script> 

upload.php

<?php 
$valid_formats = array("jpg", "png"); 
$max_file_size = 1024*100; //100 kb 
$path = "up/test/"; // Upload directory, later i'll get the name of user 
$filename=$file['filename']; 
$extension = '.jpg'; 
$i=1; 
while(file_exists($path.$filename.$extension)){ 
        $filename=$file['filename']."teste_($i)"; 
       $i++;} 

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){ 
    // Loop $_FILES to exeicute all files 
    foreach ($_FILES['files']['name'] as $f => $name) { 
     if ($_FILES['files']['error'][$f] == 4) { 
      continue; // Skip file if any error found 
     }   
     if ($_FILES['files']['error'][$f] == 0) {    
      if ($_FILES['files']['size'][$f] > $max_file_size) { 
       $message[] = "$name is too large!."; 
       continue; // Skip large files 
      } 
      elseif(! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats)){ 
       $message[] = "$name is not a valid format"; 
       continue; // Skip invalid file formats 
      } 
      else{ // No error found! Move uploaded files 

        if(!is_dir($path)){mkdir($path, 0755);} // If dont exist, create folder 

       move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$filename.$extension);  
      }  
     } 
    } 
} 
echo json_encode (json_decode ("{}")); 
?> 

şimdiden teşekkürler,

+0

deneyin bu denemek $ oldumask = umask'ı (0); mkdir ($ yol, 0777, TRUE); Umask ($ oldumask); Bu numarayı –

+0

Merhaba, @SameerJain kullanıyorum. Yardımınız için teşekkür ederim, bu kodu eklemeyi denedim ama maalesef bu da işe yaramıyor. O zaman sadece bir eylem yapmaya devam ediyor. – grcoder

cevap

2

yeni oluşturulan dizinde yükleme dosyaları için bu feryat kodu deneyin.

<?php 
    define("SITE_NAME","project_name/"); //constant for project name 
    define("SITE_PATH",$_SERVER['DOCUMENT_ROOT']."/".SITE_NAME); //constant for project base directory 
    define("IMAGES_URL",SITE_URL."images/"); //constant for image directory 


    $upload_base_dir=IMAGES_URL; 
    $upload_time_dir=date('Y')."/".date('m')."/".date('d')."/"; // setup directory name 
    $upload_dir = $upload_base_dir.$upload_time_dir; 

    if (!file_exists($upload_dir)) { 
     mkdir($upload_dir, 0777, true); //create directory if not exist 
    } 

    $image_name=basename($_FILES['image']['name']); 
    $image=time().'_'.$image_name; 
    move_uploaded_file($_FILES['image']['tmp_name'],$upload_dir.$image); // upload file 
?> 
2

(! Is_dir ($ path)) {mkdir ($ path, 0755); 777 onu değiştirin ve kontrol o yardım ederse veya

>  if(isset($_FILES["fileToUpload"]["name"]) && $_FILES["fileToUpload"]["name"] != "") 
>   { 
>    $target_dir = "/pics/"; 
>    $target_file = 'Image_'.basename($_FILES["fileToUpload"]["name"]); 
>  
>    $uploadOk = 1; 
>    $imageFileType = pathinfo($target_file, PATHINFO_EXTENSION); 
>  
>   // Check if image file is a actual image or fake image 
>    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); 
>  
>    if ($check !== false) { 
>     $msg['status'] = '1'; 
>     $msg['message'] = "File is an image - " . $check["mime"] . "."; 
>     $uploadOk = 1; 
>    } else { 
>     $msg['status'] = '0'; 
>     $msg['message'] = "File is not an image."; 
>     $uploadOk = 0; 
>    } 
>  
>   // Check if file already exists 
>    if (file_exists($target_file)) { 
>     $msg['status'] = '0'; 
>     $msg['message'] = "Sorry, file already exists."; 
>     $uploadOk = 0; 
>    } 
>   // Check file size 
>    if ($_FILES["fileToUpload"]["size"] > 5000000) { 
>     $msg['status'] = '0'; 
>     $msg['message'] = "Sorry, your file is too large."; 
>     $uploadOk = 0; 
>    } 
>   // Allow certain file formats 
>    if ($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif") { 
>     $msg['status'] = '0'; 
>     $msg['message'] = "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; 
>     $uploadOk = 0; 
>    } 
>  
>   // Check if $uploadOk is set to 0 by an error 
>    if ($uploadOk == 0) { 
>     $msg['uploadstatus'] = "Sorry, your file was not uploaded."; 
>   // if everything is ok, try to upload file 
>    } else { 
>     $target_dir = "/pics/"; 
>     if (!file_exists($target_dir)) { 
>      try { 
>       mkdir($target_dir); 
>      } catch (Exception $ex) { 
>       die("error"); 
>      } 
>     } 
>     if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], 
> $target_dir.$target_file)) { 
>      $data['imageTitle'] = basename($_FILES["fileToUpload"]["name"]); 
>      $data['imageLink'] = $target_file; 
>      $data['memberId'] = 5;  
>       $msg['id'] = 5; 
>       $msg['name'] = basename($_FILES["fileToUpload"]["name"]); 
>       $msg['size'] = ($_FILES["fileToUpload"]["size"]/1024) . "kb"; 
>       $msg['status'] = '1'; 
>       $msg['message'] = "The file " . basename($_FILES["fileToUpload"]["name"]) . " has been uploaded."; 
>       $msg['uploadstatus'] = "file uploaded"; 
>       $msg['imagepath'] = $target_dir; 
>     
>     } else { 
>      $msg['status'] = '0'; 
>      $msg['message'] = "Sorry, there was an error uploading your file."; 
>      $msg['uploadstatus'] = "Sorry, your file was not uploaded."; 
>     } 
>  
>    } 
>   } 
+0

Sevgili @RishikRohan, her iki çözümünüzü de denedim, ama ne yazık ki onlar da benim için işe yaramıyor. Kodunuz iki hata verir. Ama henüz atmayacağım, işe yaramaya çalışacağım. – grcoder

+0

Teşekkürler, aldığınız hataları lütfen paylaşabilirsiniz? –