目次
ディスカッションに返信 (解決策)
ホームページ バックエンド開発 PHPチュートリアル thinkphp3.1で複数のファイルをアップロードするときに、画像とドキュメントを別のフォルダーに保存するにはどうすればよいですか?

thinkphp3.1で複数のファイルをアップロードするときに、画像とドキュメントを別のフォルダーに保存するにはどうすればよいですか?

Jun 23, 2016 pm 01:54 PM
アップロード 写真 フォルダ 書類

Thinkphp3.1 画像とドキュメントをアップロードして個別に保存するにはどうすればよいですか?


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

ファイルの接尾辞に基づいてアップロード ディレクトリの選択を決定します

ファイルの接尾辞に基づいてアップロード ディレクトリの選択を決定します


$upload->savePath= './Public /image/home/ news/';

if(!$upload->upload()) {//アップロード エラー メッセージ
$this->error($upload->getErrorMsg()); {// アップロードに成功しました アップロードされたファイルの情報を取得します
$info = $upload->getUploadFileInfo();
}
設定できるアップロードディレクトリは 1 つだけではないでしょうか?初めて。
thinkphp3.1 は対応するソリューションを提供していないため、自分で設計する必要があります

UploadFile クラスを継承し、save メソッドをオーバーライドできます
独自のアップロード クラスを使用して完成させることもできます

ファイルサフィックス $type


if ($type == '.jpg'){
$upload->savePath= './Public/image/home/ new1/'
if(!$upload->upload( )) {// アップロード エラー プロンプト エラー情報 t $this- & gt; error ($ Upload-& gt; geterrormsg ());
} Else {// アップロードされたファイル情報
$ info = $ GetupLoadfileInfo; (); }
} else if ($type == '.txt'){
$upload->savePath= './Public/image/home /new2/'; ()) {// アップロード エラー メッセージ
$this->error($upload->getErrorMsg())
}else{// $info =
}

写真、ドキュメント、そして2つのファイル?


ファイルのサフィックスを取得できる場合 $type

if ($type == '.jpg'){

$upload->savePath= './Public/image/home/ new1/'; ! $upload->upload()) {// アップロード エラー メッセージ
$this->error($upload->getErrorMsg());
}else{// アップロードされたファイル情報を取得します

$info = $upload->getUploadFileInfo();
}
}else if ($type == '.txt'){
$upload->savePath= './Public/image/home /new2/'; !$upload->upload()) {//アップロード エラー メッセージ
$this->error($upload->getErrorMsg());
}else{// アップロード成功 アップロードされたファイル情報を取得します
$info = $upload->getUploadFileInfo();
}
}


複数のファイルを同時にアップロードする場合、複数のファイルフィールドがあるはずですよね。
<入力名="ファイル[1]" タイプ="ファイル">
<入力名="ファイル[2]" タイプ="ファイル">
<入力名="ファイル[3]" type="file">
これは単なるファイル上の判断ではないでしょうか?

UploadFile.class.php ファイルを変更する意思がある場合は、状況は好転します getSaveName メソッドを変更します (行 408 付近)

$saveName = $rule().".".$filename['extension'] ;
$saveName = $rule($filename).".".$filename['extension']; に変更します
次に、

$upload->savePath = '';$upload->saveRule = 'myFunction';
ログイン後にコピー
ログイン後にコピー

関数
function myFunction($filename) {  $p = in_array($filename['extension'], array('gif', 'jpg', 'png')) ? '图片路径' : '文档路径';  return $p . $filename['name'];}
ログイン後にコピー
ログイン後にコピー
を定義します
サフィックスは後で追加されるため、$filename['name 】お好みに変形できます

如果你愿意修改 UploadFile.class.php 文件的话,事情还是有转机的
把 getSaveName 方法中的(408行附近)
$saveName = $rule().".".$filename['extension'];
改成
$saveName = $rule($filename).".".$filename['extension'];

然后

$upload->savePath = '';$upload->saveRule = 'myFunction';
ログイン後にコピー
ログイン後にコピー

定义函数
function myFunction($filename) {  $p = in_array($filename['extension'], array('gif', 'jpg', 'png')) ? '图片路径' : '文档路径';  return $p . $filename['name'];}
ログイン後にコピー
ログイン後にコピー

由于之后还会加上后缀,所以 $filename['name'] 怎么变形你可随意


import('ORG.Net.UploadFile');
$upload = new UploadFile();// 实例化上传类
$upload->maxSize = 3145728;
$upload->savePath = '';
$upload->saveRule = 'myFunction';
if(!$upload->upload()) {// 上传错误提示错误信息
$this->error($upload->getErrorMsg());
}else{// 上传成功 获取上传文件信息
$info = $upload->getUploadFileInfo();
}



private function getSaveName($filename) {
$rule = $this->saveRule;
if(empty($rule)) {//没有定义命名规则,则保持文件名不变
$saveName = $filename['name'];
}else {
if(function_exists($rule)) {
//使用函数生成一个唯一文件标识号
$saveName = $rule($filename).".".$filename['extension'];
}else {
//使用给定的文件名作为标识号
$saveName = $rule.".".$filename['extension'];
}
}
if($this->autoSub) {
// 使用子目录保存文件
$filename['savename'] = $saveName;
$saveName = $this->getSubName($filename).$saveName;
}
return $saveName;
}






function my_filename() {
return date('ymdHis',time()).'_'.mt_rand();
}

function myFunction($filename) {
$p = in_array($filename['extension'], array('gif', 'jpg', 'png')) ? './Public/image/home/img/' : './Public/image/home/file/';
return $p . $filename[my_filename()];
}




改了,这三个地方,提示上传路径不存在。

是空的,我在上传目录不存在上一句输出了下。

既然你的 ./Public/image/home/ 是公共的,那么就
$upload->savePath = './Public/image/home/';
函数里只留 'img/' : 'file/'

既然你的 ./Public/image/home/ 是公共的,那么就
$upload->savePath = './Public/image/home/';
函数里只留 'img/' : 'file/'


版主大大,路径可以用了,不过现在是名字是空的了。
文件已经存在!./Public/image/home/img/.jpg

return $p . $filename[my_filename()];
应为
return $p . my_filename();

可直接写作

return $p . date('ymdHis_').mt_rand();
ログイン後にコピー
ログイン後にコピー

return $p . $filename[my_filename()];
应为
return $p . my_filename();

可直接写作

return $p . date('ymdHis_').mt_rand();
ログイン後にコピー
ログイン後にコピー

モデレーターに感謝します。初めてフレームワークを使用しましたが、いくつかの問題はモデレーターによって解決されました。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

小紅書で公開するときに写真が自動的に保存される問題を解決するにはどうすればよいですか?投稿時に自動保存された画像はどこにありますか? 小紅書で公開するときに写真が自動的に保存される問題を解決するにはどうすればよいですか?投稿時に自動保存された画像はどこにありますか? Mar 22, 2024 am 08:06 AM

ソーシャルメディアの継続的な発展に伴い、Xiaohongshu はますます多くの若者が自分たちの生活を共有し、美しいものを発見するためのプラットフォームとなっています。多くのユーザーは、画像を投稿する際の自動保存の問題に悩まされています。では、この問題をどうやって解決すればよいでしょうか? 1.小紅書で公開するときに写真が自動的に保存される問題を解決するにはどうすればよいですか? 1. キャッシュをクリアする まず、Xiaohongshu のキャッシュ データをクリアしてみます。手順は次のとおりです: (1) 小紅書を開いて右下隅の「マイ」ボタンをクリックします。 (2) 個人センター ページで「設定」を見つけてクリックします。 (3) 下にスクロールして「」を見つけます。 「キャッシュをクリア」オプションを選択し、「OK」をクリックします。キャッシュをクリアした後、Xiaohongshu を再起動し、写真を投稿して、自動保存の問題が解決されるかどうかを確認します。 2. 小紅書バージョンを更新して、小紅書が正しく動作することを確認します。

TikTokのコメントに写真を投稿するにはどうすればよいですか?コメント欄の写真への入り口はどこですか? TikTokのコメントに写真を投稿するにはどうすればよいですか?コメント欄の写真への入り口はどこですか? Mar 21, 2024 pm 09:12 PM

Douyin のショートビデオの人気により、コメント エリアでのユーザーのやり取りがより多彩になりました。ユーザーの中には、自分の意見や感情をよりよく表現するために、コメントで画像を共有したいと考えている人もいます。では、TikTokのコメントに写真を投稿するにはどうすればよいでしょうか?この記事では、この質問に詳しく答え、関連するヒントと注意事項をいくつか紹介します。 1.Douyinのコメントに写真を投稿するにはどうすればよいですか? 1. Douyinを開く: まず、Douyin APPを開いてアカウントにログインする必要があります。 2. コメントエリアを見つける:短いビデオを閲覧または投稿するときに、コメントしたい場所を見つけて「コメント」ボタンをクリックします。 3. コメントの内容を入力します: コメント領域にコメントの内容を入力します。 4. 写真の送信を選択します。コメント内容を入力するインターフェースに「写真」ボタンまたは「+」ボタンが表示されます。

iPhone で写真をより鮮明にする 6 つの方法 iPhone で写真をより鮮明にする 6 つの方法 Mar 04, 2024 pm 06:25 PM

Apple の最近の iPhone は、鮮明なディテール、彩度、明るさで思い出を捉えます。ただし、場合によっては、画像が鮮明に見えなくなる問題が発生することがあります。 iPhone カメラのオートフォーカスは大きく進歩し、写真をすばやく撮影できるようになりましたが、状況によってはカメラが誤って間違った被写体に焦点を合わせ、不要な領域で写真がぼやけてしまうことがあります。 iPhone 上の写真の焦点が合っていない場合、または全体的に鮮明さが欠けている場合は、次の投稿を参照して写真を鮮明にすることができます。 iPhone で写真を鮮明にする方法 [6 つの方法] ネイティブの写真アプリを使用して写真をクリーンアップしてみることができます。さらに多くの機能やオプションが必要な場合

同期したフォルダー内の 1 つ以上のアイテムが Outlook エラーと一致しません 同期したフォルダー内の 1 つ以上のアイテムが Outlook エラーと一致しません Mar 18, 2024 am 09:46 AM

同期フォルダー内の 1 つ以上のアイテムが Outlook のエラー メッセージと一致しない場合は、会議アイテムを更新またはキャンセルしたことが原因である可能性があります。この場合、ローカル バージョンのデータがリモート コピーと競合していることを示すエラー メッセージが表示されます。この状況は通常、Outlook デスクトップ アプリケーションで発生します。同期したフォルダー内の 1 つ以上のアイテムが一致しません。競合を解決するには、プロジェクトを開いて操作を再試行します。同期フォルダー内の 1 つ以上のアイテムが Outlook エラーと一致しない問題を修正する Outlook デスクトップ バージョンでは、ローカルの予定表アイテムがサーバー コピーと競合すると問題が発生する可能性があります。ただし幸いなことに、それを助ける簡単な方法がいくつかあります

PPT画像を1枚ずつ表示させる方法 PPT画像を1枚ずつ表示させる方法 Mar 25, 2024 pm 04:00 PM

PowerPoint では、画像を 1 枚ずつ表示するのが一般的な手法ですが、これはアニメーション効果を設定することで実現できます。このガイドでは、基本的なセットアップ、画像の挿入、アニメーションの追加、アニメーションの順序とタイミングの調整など、この手法を実装する手順について詳しく説明します。さらに、トリガーの使用、アニメーションの速度と順序の調整、アニメーション効果のプレビューなど、高度な設定と調整が提供されます。これらの手順とヒントに従うことで、ユーザーは PowerPoint で次々に表示される画像を簡単に設定できるため、プレゼンテーションの視覚的な効果が高まり、聴衆の注意を引くことができます。

Word文書に朱書きを入れる方法 Word文書に朱書きを入れる方法 Mar 01, 2024 am 09:40 AM

395ワードなので495 この記事では、Word文書に赤線を追加する方法を紹介します。ドキュメントのレッドラインとは、ユーザーが変更を明確に確認できるようにドキュメントを変更することを指します。この機能は、複数の人が一緒にドキュメントを編集している場合に非常に重要です。レッドラインの意味 ドキュメントのマーク レッドラインとは、ドキュメントの変更、編集、または改訂を示すために赤い線または吹き出しを使用することを意味します。この用語は、印刷された文書に赤ペンを使用してマークを付ける習慣からインスピレーションを受けました。レッドライン コメントは、ドキュメントの編集時に作成者、編集者、レビュー担当者に推奨される変更を明確に示すなど、さまざまなシナリオで広く使用されています。法的合意や契約の変更や修正を提案する。 論文やプレゼンテーションなどに対して建設的な批評や提案を提供する。 Wの与え方

Foxit PDF Reader で PDF ドキュメントを jpg 画像に変換する方法 - Foxit PDF Reader で PDF ドキュメントを jpg 画像に変換する方法 Foxit PDF Reader で PDF ドキュメントを jpg 画像に変換する方法 - Foxit PDF Reader で PDF ドキュメントを jpg 画像に変換する方法 Mar 04, 2024 pm 05:49 PM

Foxit PDF Reader ソフトウェアも使用していますか? Foxit PDF Reader が PDF ドキュメントを jpg 画像に変換する方法をご存知ですか? 次の記事では、Foxit PDF Reader が PDF ドキュメントを jpg 画像に変換する方法について説明します。 jpg画像は以下からご覧ください。まずFoxit PDF Readerを起動し、上部のツールバーで「機能」を見つけ、「PDF to Others」機能を選択します。次に、「Foxit PDF Online Conversion」というWebページを開きます。ページ右上の「ログイン」ボタンをクリックしてログインし、「PDF to Image」機能をオンにしてください。次にアップロードボタンをクリックし、画像に変換したいPDFファイルを追加し、追加後「変換開始」をクリックします。

CドライブにWindowsフォルダが2つあるのですがどうすればよいでしょうか? CドライブにWindowsフォルダが2つあるのですがどうすればよいでしょうか? Mar 06, 2024 am 11:55 AM

Windows フォルダーには Windows オペレーティング システムが含まれており、Windows コンピューターの重要なフォルダーです。デフォルトでは、Windows は C ドライブにインストールされます。したがって、C は Windows フォルダーのデフォルトのディレクトリです。すべての Windows コンピュータには Windows フォルダがあります。ただし、一部のユーザーは、C ドライブに 2 つの Windows フォルダーが見つかったと報告しました。この記事では、そのような状況に遭遇した場合の対処法について説明します。 C ドライブに 2 つの Windows フォルダーがある C ドライブに 2 つの Windows フォルダーがあることはまれです。ただし、このような状況が発生した場合は、次の提案を使用できます。 マルウェア対策スキャンを実行して、正しいファイルを見つけてみます。

See all articles