ホームページ >バックエンド開発 >PHPチュートリアル >ThinkPHP3.1 の複数ファイルのアップロード パスと名前付け

ThinkPHP3.1 の複数ファイルのアップロード パスと名前付け

WBOY
WBOYオリジナル
2016-06-23 13:44:571312ブラウズ

import('ORG.Net.UploadFile');

$co = array();
$co['saveRule'] = date('ymdHis',time() ).'_'.mt_rand();
$co['allowExts'] = array('jpg', 'gif', 'png', 'jpeg');
$co['savePath'] = './ Public/image/home/news/';
$upload = new UploadFile($co);// アップロード クラスをインスタンス化する
if(!$upload->upload()) {// アップロード エラー メッセージ
$ this- >error($upload->getErrorMsg());
}else{// アップロード成功 アップロードされたファイル情報を取得
}


このように複数のファイルをアップロードするファイルをファイルしようとすると、ファイルはすでに存在し、名前が重複しているというエラーが表示されます。 2 つのファイルをアップロードして、異なるパスに保存してみてはいかがでしょうか。

ディスカッションへの返信 (解決策)

实例化上传类之后,就可以设置一些上传的属性(参数),支持的属性有:maxSize 文件上传的最大文件大小(以字节为单位)默认为-1 不限大小savePath 文件保存路径,如果留空会取UPLOAD_PATH常量定义的路径saveRule 上传文件的保存规则,必须是一个无需任何参数的函数名,例如可以是 time、 uniqid com_create_guid 等,但必须能保证生成的文件名是唯一的,默认是uniqidhashType 上传文件的哈希验证方法,默认是md5_fileautoCheck 是否自动检测附件,默认为自动检测uploadReplace 存在同名文件是否是覆盖allowExts  允许上传的文件后缀(留空为不限制),使用数组设置,默认为空数组allowTypes 允许上传的文件类型(留空为不限制),使用数组设置,默认为空数组thumb 是否需要对图片文件进行缩略图处理,默认为falsethumbMaxWidth 缩略图的最大宽度,多个使用逗号分隔thumbMaxHeight 缩略图的最大高度,多个使用逗号分隔thumbPrefix 缩略图的文件前缀,默认为thumb_thumbSuffix 缩略图的文件后缀,默认为空thumbPath 缩略图的保存路径,留空的话取文件上传目录本身thumbFile 指定缩略图的文件名thumbRemoveOrigin 生成缩略图后是否删除原图autoSub 是否使用子目录保存上传文件subType 子目录创建方式,默认为hash,可以设置为hash或者datedateFormat 子目录方式为date的时候指定日期格式hashLevel 子目录保存的层次,默认为一层以上属性都可以直接设置

http://doc.thinkphp.cn/manual

複数のファイル分割パス? Upload クラスを自分で書き直す必要がある場合があります

实例化上传类之后,就可以设置一些上传的属性(参数),支持的属性有:maxSize 文件上传的最大文件大小(以字节为单位)默认为-1 不限大小savePath 文件保存路径,如果留空会取UPLOAD_PATH常量定义的路径saveRule 上传文件的保存规则,必须是一个无需任何参数的函数名,例如可以是 time、 uniqid com_create_guid 等,但必须能保证生成的文件名是唯一的,默认是uniqidhashType 上传文件的哈希验证方法,默认是md5_fileautoCheck 是否自动检测附件,默认为自动检测uploadReplace 存在同名文件是否是覆盖allowExts  允许上传的文件后缀(留空为不限制),使用数组设置,默认为空数组allowTypes 允许上传的文件类型(留空为不限制),使用数组设置,默认为空数组thumb 是否需要对图片文件进行缩略图处理,默认为falsethumbMaxWidth 缩略图的最大宽度,多个使用逗号分隔thumbMaxHeight 缩略图的最大高度,多个使用逗号分隔thumbPrefix 缩略图的文件前缀,默认为thumb_thumbSuffix 缩略图的文件后缀,默认为空thumbPath 缩略图的保存路径,留空的话取文件上传目录本身thumbFile 指定缩略图的文件名thumbRemoveOrigin 生成缩略图后是否删除原图autoSub 是否使用子目录保存上传文件subType 子目录创建方式,默认为hash,可以设置为hash或者datedateFormat 子目录方式为date的时候指定日期格式hashLevel 子目录保存的层次,默认为一层以上属性都可以直接设置

$co['saveRule'] = date('ymdHis',time()).'_'.mt_rand(); この設定名を使用した後は、複数のファイルをアップロードする場合、ファイルがすでに存在することを確認するメッセージが表示されます。

saveRule アップロードされたファイルの保存ルールは、パラメーターのない関数名である必要があります 明らかに、 $co['saveRule'] = date('ymdHis',time()).'_'.mt_rand(); は To ではありません。この要件を満たす

function my_filename() {  return date('ymdHis',time()).'_'.mt_rand();}
などの関数を定義できます
次に、
$co['saveRule'] = 'my_filename';




saveRule アップロードされたファイルの保存ルールは、パラメーターのない関数名である必要があります

明らかに $co['saveRule'] = date('ymdHis',time()).'_'.mt_rand(); はこの要件を満たしていません

function my_filename() {  return date('ymdHis',time()).'_'.mt_rand();}
などの関数を定義できます

次に
$co [ 'saveRule'] = 'my_filename';
$co['saveRule'] = 'my_filename'; このようにして、これを文字列として直接扱い、$co['saveRule'] = my_filename に変換します。 (); これをこれに変更すると、このメソッドが定義されていないことがわかりました。
また、ファイルがアップロードされていない場合、ファイルをアップロードする必要があるというメッセージが表示されるのですが、ファイルをアップロードする必要がないように変更するにはどうすればよいですか?

saveRule アップロードされたファイルの保存ルールは、パラメーターのない関数名である必要があります
明らかに、$co['saveRule'] = date('ymdHis',time()).'_'.mt_rand(); ではありません。この要件を満たす
function my_filename() {  return date('ymdHis',time()).'_'.mt_rand();}
などの関数を定義できます

次に、

$co['saveRule'] = 'my_filename';
このフレームワークは初心者です、初めて使用します


saveRule はアップロードされたファイルの保存ルール。パラメータのない関数名である必要があります
明らかに、 $co['saveRule'] = date('ymdHis',time()).'_'.mt_rand(); はこれを満たしていません。要件

function my_filename() {  return date('ymdHis',time()).'_'.mt_rand();}
などの関数を定義できます

次に、

$co['saveRule'] = 'my_filename';


関数を定義するように求められませんか?
理解できないからですか、それとも見ていないからですか?

関数を定義するように頼んだではありませんか?

理解できないからですか、それとも見ていないからですか?
申し訳ありませんが、関数が間違った場所にあります。送信時にファイルがアップロードされないことがありますが、ファイルがアップロードされていないことを示すメッセージが表示されます。これを無視するように設定するにはどうすればよいですか?

知りません、使ったことはありません


saveRule を使用してすでに作成しましたが、savename も saveName も機能しません

議論を続けていただいて、明日投稿を終了します

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。