ホームページ >バックエンド開発 >PHPチュートリアル >画像は ThinkPHP に正常にアップロードされましたが、データベースフィールドの内容が NULL です

画像は ThinkPHP に正常にアップロードされましたが、データベースフィールドの内容が NULL です

WBOY
WBOYオリジナル
2016-06-23 14:10:25981ブラウズ

画像は ThinkPHP に正常にアップロードされましたが、データベース フィールドの内容は NULL です

public function Upload(){
import('ORG.Net.UploadFile')
$upload = new UploadFile(); // アップロードをインスタンス化します。 class
$ Upload->maxSize = 3145728 ; // 添付ファイルのアップロード サイズを設定します
$upload->allowExts = array('jpg', 'gif', 'png', 'jpeg'); // 添付ファイルを設定しますアップロードの種類
$upload ->savePath = './Public/Uploads/';// 添付ファイルのアップロード ディレクトリを設定
if(!$upload->upload()) {// アップロード エラー メッセージ
$this-> ;error($ Upload->getErrorMsg());
}else{// アップロード成功 アップロードされたファイル情報を取得します
$info = $upload->getUploadFileInfo(); // 添付ファイルデータを含むフォームデータを保存します
$User = M ("Photo"); // ユーザーオブジェクトをインスタンス化します
$User->create(); // データオブジェクトを作成します
$User->photo = $info[0]['tupian']; // 保存してアップロード 必要に応じて写真を組み立てます
$User->add(); // ユーザー データをデータベースに書き込みます
$this->success('データは正常に保存されました!');
}
方法アップロードされた写真の名前を変更し、データベースに正常に挿入されました


ディスカッションに返信 (解決策) $User->add($info)
最後の $this->success( 'データは正常に保存されました! '); if ステートメントの else 内で取得します。

そうでなければ、成功しなくても成功したように見えます。

私も初心者です


$info を印刷して見てください。

$User->add($info);

最後の $this->success('データは正常に保存されました!'); を if ステートメントの else に入れるのが最善です。

そうでなければ、成功しなくても成功したように見えます。

私も初心者です


array(1) { [0]=> array(8) { ["name"]=> string(7) "444.jpg" ["type"]=> string(10) "image/jpeg" ["size"]=> int(2502) ["key"]=> int(0) "jpg" ["保存パス"] => 文字列(17) "./Public/Uploads/" ["保存名"]=> 文字列(7) "444.jpg" ["ハッシュ"]=> 文字列(32) "9a4e6104c8b37bb4df69e059339545d1" } }

$info を印刷して見てください。

配列(1) { [0]=> 配列(8) { ["名前"]=> 文字列(7) "444.jpg" ["タイプ"]=> /jpeg" ["サイズ"]=> int(2502) ["キー"]=> int(0) ["拡張子"]=> string(3) "jpg" ["保存パス"]=> string(17) "./Public/Uploads/" ["savename"]=> string(7) "444.jpg" ["hash"]=> string(32) "9a4e6104c8b37bb4df69e059339545d1" } }


$を入れます情報を印刷してご覧ください。

savepath をデータベースに保存するにはどうすればよいですか?


"savepath" => "./Public/Uploads/"
"savename" => "444.jpg" から
$User->photo = substr($info[0]) ['savepath'], 1) . $info[0]['savename'];

から

"savepath" => $User->photo = substr($info[0]['savepath'], 1 ) . $info[0]['savename'];

ははは、ありがとう、うまくいきました
私の質問の多くはすべてあなたからのものです 解決するのを手伝ってください
神様、この小さな女の子に敬意を表してください


$info を印刷して見てください。


savepath をデータベースに保存するにはどうすればよいですか?
パス設定に関連するすべてのものを設定ファイルに配置し、データベースに保存しないことを示します。ファイル名のみがデータベースに保存されます。
さらに、ファイルの名前が変更されていない場合、ファイルが同じ名前で上書きされやすくなります。一意の識別子を生成できる関数をインターネット上で見つけて、一意の識別子のファイル名を生成することをお勧めします。挿入する前に名前を変更します。

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