-3

画像をアップロードしようとすると、何も起こらないシンプルなコンテンツ管理システムを開発しています。ページを更新するだけです。私は画像なしで試しましたが、画像を追加している間は正しく機能しますが、機能しません

ここに私のコード

if(isset($_POST[submit]) && $_FILES['userfile']['size'] > 0){                  

$information_id = mysql_prep($_GET['info']);
$menu = trim(mysql_prep($_POST['menu']));  // cut out whitespace for menu

$position = mysql_prep($_POST['position']);
$visible = mysql_prep($_POST['visible']);

$img_des = mysql_prep($_POST['img_des']);
$fileName = $_FILES['userfile']['name'];
$tmpName  = $_FILES['userfile']['tmp_name'];
$fileType = $_FILES['userfile']['type'];
$fileSize = $_FILES['userfile']['size'];


$fp      = fopen($tmpName, 'r');
$image = fread($fp, filesize($tmpName));
$image = addslashes($image);
fclose($fp);
$content = mysql_prep($_POST['content']);
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}


$query = "INSERT INTO pages (
menu, position, visible, img_des, name, type, size, image, content, information_id
) VALUES (
'{$menu}', {$position}, {$visible}, '{$fileName}', '{$fileType}', {$fileSize},             
 {$image}, '{$img_des}', '{$content}', {$information_id}   )";
  if ($result = mysql_query($query, $connection))    {
  $message = "The new page was created successfully";
4

3 に答える 3

1

画像をデータベースに保存する前に、まず画像をbase64_encodeする必要があると思います。私はそれを使用し、それはうまく機能します。

詳細については、次のリンクを確認してください。

画像をmysqldbに保存します

画像をmysqldbに保存します

それを試してみて、それがあなたに役立つかどうか私に知らせてください。

幸運を!

于 2013-02-21T12:14:13.917 に答える
0

サーバー上のフォルダに画像をアップロードしてから、画像のパスをデータベースに保存する必要があります。

于 2013-02-21T12:02:16.127 に答える
0

あなたの問題はあなたの質問にあると思います。入力をエスケープし、sprintfステートメントを使用する必要があります。例については、こちらをご覧ください。

http://php.net/manual/en/function.mysql-query.php

また、mysql_queryは非推奨になりました。mysqliの使用を検討してください

http://www.php.net/manual/en/mysqli.query.php

于 2013-02-21T12:15:58.380 に答える