この記事では、jQuery File Uploadをどのように研究し、戦い、打ち負かしたかを説明したいと思います。
叙情的な余談:
サイトを作成する際に、サイトに画像をアップロードする機能が必要でした。個々のユーザーは写真をアップロードして、そのユーザー用に写真を保存して正確に添付する必要がありました。
一般的に、グーグルでjQuery File Uploadに出会いました。
このサイトにはドキュメンテーションがあり、明らかに理解できませんでしたが、スクリプト自体を理解することにしました。
1.など。 スクリプトをダウンロードし、サーバーにインストールしました。
そして、すぐに次の問題に遭遇しました。
画像を読み込んだ後、ページを更新すると、既にダウンロードした画像のリストが再び表示されます。 誰かにとっては、これは可能ですが、私にとってはそうではありません。
この問題を解決する方法を探し始めました。
ファイルサーバー/ php / upload.class.phpで解決されます。 行約640 + -5。
修正が必要
public function get($print_response = true)
に
public function get($print_response = false)
。
1つ少ない問題。
次に、MySQLデータベースに画像を追加する方法を知りました。
解決策は再びこのファイルにありました(Upload.class.php)。
行の後の約500行目:
move_uploaded_file($uploaded_file, $file_path);
データベースに写真を追加するスクリプトを追加しました
mysql_query("INSERT INTO img SET name='".$file->name."'");
その後、写真がアップロードされるとデータベース内のレコードが追加されましたが、すぐに削除された場合、写真は削除され、データベース内のレコードは削除されないことがわかりました。 再び、コードの研究を始めました。 同じファイルで、次の後に約715行を追加する必要があります。
unlink($file);
データベース内のレコードを削除するコマンド。 私の場合、次のとおりです。
mysql_query("DELETE FROM img WHERE name='".$file_name."'");
まあ、すでに良い。
それから私は稲妻のように泣いた。 そして、なぜ特定の著者に添付されていない名前だけでデータベースに写真を追加するのですか?!
私は検索を開始し、どうすればより多くの情報をもたらすことができるかを考えました
mysql_query("INSERT INTO img SET name='".$file->name."'");
解決策が再び見つかりました。
メインファイルIndex.html(スクリプトを実行するために開く)を開きます。
に追加
<form id="fileupload" action="//jquery-file-upload.appspot.com/" method="POST" enctype="multipart/form-data">
条件付きで、写真をアップロードするユーザーのID。
おおよそ次のようになります。
<form id="fileupload" userId="1234567890" action="//jquery-file-upload.appspot.com/" method="POST" enctype="multipart/form-data">
ここであなた自身の方法でそれをはんだ付けする方法を考えると思います。
次に、main.jsファイルを開きます
22行目
url: 'server/php/index.php?'
次のように変更します
url: 'server/php/index.php?id='+$('#fileupload').attr('userId')
これで、ファイルをダウンロードするときに、ユーザーIDとともにGETリクエストを送信します。
もう一度、500行目を変更します
と
mysql_query("INSERT INTO img SET name='".$file->name."'");
に
mysql_query("INSERT INTO img SET name='".$file->name.$_GET['id']."'");
そして出来上がり。 ユーザーが画像を読み込む場合、取得するもの:
1.写真がサーバーにアップロードされます。
2.写真の名前とそれをアップロードしたユーザーのIDを含むエントリがデータベースに追加されます。
誰かが助けてくれたことを願っています!