2016-03-23 12 views
0

以下は、俳優のプロフィール画像をアップロードするためのコードです。現在のところ、mysqlに追加されるファイル名は「xxxxx-'元のファイル名」の形式になっています。xは乱数です。フォーマットを "xxxxx-Actors_Name"の順になるように変更する方法元のファイル名からActors_Nameに名前を変更し、プロセス内でスペースを '_'で置き換えたいとします。画像をアップロードして元の画像ファイル名を変更する

さらに可能であれば、最初に乱数を取り除き、mysqlにデータを送信するときに割り当てられるID番号を入れておく方がよいでしょう。

<?php 
mysql_query("SET NAMES 'utf8'");  

if(isset($_POST['submit'])) 
{ 

    $image=rand(0,99999)."-".$_FILES['actors_image']['name']; 
     $pic1=$_FILES['actors_image']['tmp_name']; 

     $tpath1='upload/'.$image; 

      copy($pic1,$tpath1); 

       $thumbpath='upload/thumbs/'.$image; 
       $obj_img = new thumbnail_images(); 
       $obj_img->PathImgOld = $tpath1; 
       $obj_img->PathImgNew =$thumbpath; 
       $obj_img->NewWidth = 100; 
       $obj_img->NewHeight = 100; 
        if (!$obj_img->create_thumbnail_images()) 
         { 
          echo $_SESSION['msg']="Please retry again."; 
          exit; 
         } 

          $data = array(
           'actors_name' => $_POST['actors_name'], 
           'actors_image ' => $image , 
          );  
       $qry = Insert('tbl_actors',$data);         
       $_SESSION['msg']="11"; 
       header("Location:actors-manage.php"); 
       exit; 
} 

?> 
+0

どのようなクラスthumbnail_images(正確には: 'create_thumbnail_images()')は何ですか?何を試してもうまくいかないのですか?ランダムを削除するのは簡単ですが、db-idを追加することはここで使用しているクラスによって異なります。 – Jeff

答えて

0

代わりの

$image=rand(0,99999)."-".$_FILES['actors_image']['name']; 

ファイル名で俳優の名前を持つように

$image=rand(0,99999)."-".str_replace(' ', '_',$_POST['actors_name']); 

を使用しています。

2番目の部分は可能ですが、十分な情報を提供していない可能性があります。一般的には、最初にイメージ名を付けずに新しいレコードを挿入し、新しいレコードのIDを取得し、最後にイメージ名を構築してデータベースを更新してイメージを保存します。

+0

シャドウありがとう、それは素晴らしい作品です。私は今、それは仕事をするための乱数を使用してOKです。 –

+0

ファイル拡張子(png、jpgなど)を取り除くというエラーが表示されます。これをコードに追加するにはどうすればよいですか? –

+0

元のファイル名から取得する必要があります。 – Shadow

関連する問題