2017-04-19 9 views
0

実際にファイルをアップロードしているときにタイムスタンプ付きのフォルダを作成していて、ファイル名とともにフォルダ名を保存していますが、これはうまくいきます。編集中に私はこのタイプの入力を隠していますが、ユーザーがファイルを変更しないと、フォルダがすでに終了していてもフォルダを作成してはならず、ユーザーがファイルを変更したときに新しいフォルダを作成する必要があります。調子。私は誰か助けてください。以下は codeigniterでのファイルアップロードの問題

if(isset($_FILES['event_image']['name'])&& $_FILES['event_image']['name']!="") 
{ 
    $folder_name =$_FILES['event_image']['name']; 
    echo $folder_name; 
} 
else 
{ 
    $folder_name =$_POST['image_exists']; 
    echo $folder_name; 
}   
    //print_r($pathToUpload);die; 
    $old = umask(0); 
if (!file_exists($folder_name)) 
{ 
    //echo "djfgd";die; 
    $folderName = $_POST['event_name'].time(); 
    $pathToUpload = 'images/events/' . $folderName; 
    $create = mkdir($pathToUpload, 0777,true); 
    //chmod($pathToUpload,0755,true); 
    if (! $create) 
    return; 
    } 
    else{ 
    //echo "dqqqqqq";die; 
    //$folderName = $_POST['event_name'].time(); 
    //$pathToUpload = 'images/events/' . $folderName; 
    //$create = mkdir($pathToUpload, 0777,true); 
    echo "already exits";die; 
    } 
    umask($old); 

HTMLコード、PHPコードです:私はCodeIgniterの、シンプルなPHP is_dir機能を使用して私のマシン上であなたのケースをシミュレートしているよし

<div class="col-md-6"> 
    <div class="form-group"> 
    <label for="event_image">Event Banner</label> 
    <input type="file" value="<?php echo $event_image; ?>" 
    class="form-control" id="eventimage" name="event_image"> 
    <input type="hidden" name="image_exists" value="<?php echo $event_image;?>" 
    class="form-control" id="eventimage" placeholder="Enter Image Text" aria-describedby="fileHelp"> 
    <div><?php echo $event_image;?></div> 
    </div> 
</div> 
+0

if文の前にフォルダ名を印刷し、一致するかどうかを確認します。あなたのスクリプトが新しいものを確実に作成する場合 –

+0

@malik mudassarそれは新しいフォルダを作成している場合にも印刷を試みました。 – raja

+0

もしあなたがcodeigniterを使用しているのであれば、なぜコアphpにコードを書いていますか? – Gaurav

答えて

2

は、ここで私は成功であるディレクトリを作成マイコントローラー

public function index() 
{ 
    $data['title']='Multiple submit'; 
    if($_POST) 
    { 
     $path='uploads/'.$_POST['name']; 
     if (!is_dir($path)) { 
      mkdir($path); 
      $data['success']='Directory Created Successfully'; 
      $this->load->view('form',$data); 
     } 
     else 
     { 
      $data['errors']='Directory Already Exist'; 
      $this->load->view('form',$data); 
     } 
    } 
    else 
    { 
     $this->load->view('form',$data); 
    } 

} 

<div class="container" style="margin-top:100px; "> 
    <div class="col-md-6" style="border: 1px dotted red; "> 
     <?php if(isset($errors)){?> 
      <div class="alert alert-danger"> 
       <?php print_r($errors);?> 
      </div> 
     <?php }?> 
     <?php if(isset($success)){?> 
      <div class="alert alert-success"> 
       <?php print_r($success);?> 
      </div> 
     <?php }?> 
     <form action="" method="post" id="form1"> 
      <div class="form-group"> 
       <label > Directory Name</label> 
       <input type="text" name="name" class="form-control" > 
      </div> 
      <div class="form-group"> 
       <button type="submit" class="btn btn-danger" >Create</button> 
      </div> 
     </form> 
    </div> 

</div> 

マークアップ

の後で作成された私のテストビュー

enter image description here

です。

enter image description here

私は再びそれを試して、エラー

![enter image description here

を取得し、私のパスに作成されたディレクトリが

enter image description here

である私は、あなたがこのコードを変更することを願ってあなたの要件ごとに。

関連する問題