WordPressのプラグインの記述なのですけれど、
下記PHPプログラム(抜粋しております)の17行目で
$zipping = $this->mfcf7_zl_multilinefile_create_zip($getuploadfiles[$multitag['name']], $zipped_files);
としてmfcf7_zl_multilinefile_create_zipを呼び出していますが、
この関数の中で、既にファイルが存在していました場合、31行目の
if (file_exists($destination) && !$overwrite) {
にて、falseが返ると思います。
そのfalseが返ってきた場合、17行目以降の処理はどうなりますで
しょうか?
既にファイルが存在しておりますので、ファイルは上書きされ
ませんものの、18行目の
@chmod($zipped_files, 0444);
とか、既存ファイルに対して処理されてしまうのではないかと
素人ながら思ってしまいます。
3行目の
$uniqid = uniqid();
にて、もしファイル名が重なってしまいました場合、このPHPは
どういう処理をしますでしょうか…
以下、falseを返すまでの一部抜粋
PHP
1 // Update file name 2 3 $uniqid = uniqid(); 4 $uploads_dir = path_join( wpcf7_upload_dir( 'dir' ), $this->folder_file ); 5 wp_mkdir_p( $dir ); 6 7 $uploads_dir = $this->wpcf7_maybe_add_random_dir($uploads_dir); 8 $zipped_files = trailingslashit($uploads_dir) . $uniqid . '.zip'; 9 10 if ($submission) { 11 $multitags = $submission->get_contact_form()->scan_form_tags(array( 12 'type' => 'multilinefile', 13 )); 14 $getuploadfiles = $submission->uploaded_files(); 15 foreach ($multitags as $multitag) { 16 if (!empty($getuploadfiles[$multitag['name']]) && count($getuploadfiles[$multitag['name']]) >= 1) { 17 $zipping = $this->mfcf7_zl_multilinefile_create_zip($getuploadfiles[$multitag['name']], $zipped_files); 18 @chmod($zipped_files, 0444); 19 20 $array = explode($this->folder_file, $zipped_files); 21 $this->file_path_download = $this->get_folder_file_parent() . $array[1]; 22 23 } 24 } 25 } 26 } 27 28 function mfcf7_zl_multilinefile_create_zip($files = array(), $destination = '', $overwrite = false) 29{ 30 //if the zip file already exists and overwrite is false, return false 31 if (file_exists($destination) && !$overwrite) { 32 return false; 33 } 34 35
回答1件
あなたの回答
tips
プレビュー