2017-04-12 7 views
2

URLで画像をアップロードしようとしています。正常に動作しています。イメージは正しくアップロードできますが、イメージがすでに存在する場合はファイルを上書きします。
はここに私のコードです - イメージファイルは、その後にまだ存在している場合には、名前が変更されるべきだ、CodeigniterのURLを使って画像をアップロードする(CSVファイルを使用)

$url=$d[1]; 
    $name = basename($url); 
    $my_location='././assets/temp_upload/'; 
    if (!defined('IMAGE_DIR')) define('IMAGE_DIR', $my_location); 
    if(!$img = file_get_contents($url)) 
    { 
    die('Getting that file failed'); 
    } 
    if(!$f = fopen(IMAGE_DIR.'/'.$name, 'w')) 
    { 
     die('Opening file for writing failed'); 
    } 
    if (fwrite($f, $img) === FALSE) 
    { 
    die('Could not write to the file'); 
    } 
    fclose($f); 

私はちょうどしたいので、イメージしませんオーバーライト。
私を助けてください。
ありがとうございます。

+1

イメージ名の名前をミリ秒単位で変更しても、古いイメージをリンクし直したくない場合にはうまくいくでしょう。 –

+2

Codeigniterには、アップロードライブラリが組み込まれています。http://www.codeigniter.com/user_guide/libraries/file_uploading .html – user4419336

+1

@ wolfgang1983が言ったように、あなたはcodeigniterのファイルアップロードライブラリを参照する必要があります。ファイルアップロード設定に '' '上書き' 'オプションがあります。それを' '' true'''に設定する必要があります。 – kishor10d

答えて

1

簡単ですが、イメージファイル名の最後にランダムな文字列を追加できます。

$name_temp = basename($url); 
$my_location='././assets/temp_upload/'; 
if (file_exists($my_location.''.$name_temp)) { 
    $fileinfo = pathinfo($url); 
    $name=$fileinfo['filename'].'_'.rand(1,10000).''.$fileinfo['extension']; 
} 
else 
{ 
    $name=$name_temp; 
} 

必要に応じてカスタマイズできます。

+0

@ Bikram。ご回答ありがとうございます。これは正常に動作しています。 – Deepak

関連する問題