をアップロードし、PHPサーバーとSQL画像[OK]を
私はPHPの画像アップローダーを設定に関して前のポストの背面に挿入画像ページ(uploader.php)を構築しているが、いくつかの問題を抱えています......
コードは次のとおり
<?php
$target = "images/test/";
$target = $target . basename($_FILES['photo']['name']);
$title=$_POST['title'];
$desc=$_POST['desc'];
$pic=($_FILES['photo']['name']);
mysql_connect("dbhost", "dbuser", "dbpass") or die(mysql_error()) ;
mysql_select_db("dbname") or die(mysql_error()) ;
mysql_query("INSERT INTO `test` VALUES ('$title', '$desc', '$pic')") ;
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{
echo "The file ". basename($_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";
}
else {
echo "Sorry, there was a problem uploading your file.";
}
?>
<form enctype="multipart/form-data" action="uploader.php" method="POST">
Title: <input type="text" name="title"><br>
Description: <input type="text" name = "desc"><br>
Photo: <input type="file" name="photo"><br>
<input type="submit" value="Add">
</form>
したがって、最初の問題は、情報がデータベースに入力されていないことである - ID(INT)、タイトル( - 表は、4つのフィールドを有していますvarchar)、desc(varchar)、およびphoto(varchar)です。 idフィールドが指定されていないためですか?これは単にテーブルの自動インクリメントプライマリキーです。
2番目の問題は、アップロードする画像に空白が含まれていることです。たとえば、"test image.jpg"
をアップロードするときにstr_replace()
を組み込んで"testimage.jpg"
を作成したいとします。これをコードに挿入する場所を知っていますか?任意の助け再び
おかげで、
JD
HMM - I .....推奨されるように4行を更新し、str_replaceを含め、BUT 画像がアップロードされ(ただしspaces-を除去することなく、依然としてサーバにimage.jpgテスト)されて、 1つの行がデータベースに挿入されますが、id-allフィールド以外は空白です....!私のコードはこれらの変更を除いて上記と全く同じです – JD2011
'$ _POST'の値が空ではないことは確かですか?値がそこにあることを確認する 'var_dump($ _ POST)'を行い、 'mysql_query()'に送る前にSQL文の文字列をエコーしてください。 –
それは今働いています。上記のコードを使用して新しく始まったばかりで、イメージがサーバーに正しく配置され、詳細がデータベース表に正しく入力されました。 しかし何らかの理由で2行がテーブルに挿入されています(1つは空白、もう1つは詳細があります)。なぜこのようなことが起こるのか分かりません。感謝! – JD2011