-2

関連するすべてのフィールドとメイン画像を挿入して、プロパティ Web サイトで完全に機能する php の mysql スクリプトへのアップロードがあります。

ただし、問題は、この画像がスライドショーで使用され、サムネイルが xxxxxt.png として識別されることです。たとえば、メイン画像は xxxxx.png です。

私のphpコードは次のとおりです。

<?php include 'dbc.php'; page_protect();

if(!checkAdmin()) {header("Location: login.php");
exit();
}

$host  = $_SERVER['HTTP_HOST'];
$host_upper = strtoupper($host);
$login_path = @ereg_replace('admin','',dirname($_SERVER['PHP_SELF']));
$path   = rtrim($login_path, '/\\');

foreach($_GET as $key => $value) {
    $get[$key] = filter($value);
}

foreach($_POST as $key => $value) {
    $post[$key] = filter($value);
}   

$uniqid = md5(uniqid(mt_rand()));

?>


<?php 
if($_FILES['photo']) //check if we uploading a file
{
    $target = "images/properties/"; 
    $target = $target . basename( $_FILES['photo']['name']);


    $title = mysql_real_escape_string($_POST['title']); 
    $desc = mysql_real_escape_string($_POST['desc']); 
    $extra = mysql_real_escape_string($_POST['extra']); 
    $postcode = mysql_real_escape_string($_POST['postcode']); 
    $price = mysql_real_escape_string($_POST['price']);  
    $pandp = mysql_real_escape_string($_POST['pandp']);  
    $pic = "images/properties/" .(mysql_real_escape_string($_FILES['photo']['name']));
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
{
    mysql_query("INSERT INTO `furnishings` (`title`, `postcode`, `desc`, `extra`, `productcode`, `price`, `status`, `pandp`, `photo`) VALUES ('$title', '$postcode', '$desc', '$extra', '" . $uniqid . "', '$price', 'tolet.png', '$pandp', '$pic' )") ;     

    echo "The property has been added to the lettings portfolio"; 
} 
else 
{ 
    echo "Error uploading new property - please ensure all the fields are correctly entered and the file is an image"; 

}
} 
?> 

アップロード フォームの HTML コードは次のとおりです。

<form enctype="multipart/form-data" action="addlet.php" method="POST">
  <table width="600px" border="2" cellpadding="5"class="myaccount">
   <tr>
       <td width="135">Title: </td>
       <td width="427"><input name="title" type="text" size="40"/></td>
    </tr>
     <tr>
       <td>Description: </td>
       <td><textarea name = "desc" rows="3" cols="40"></textarea></td>
     </tr>
          <tr>
       <td>Property Features: </td>
       <td><textarea name = "extra" rows="3" cols="40"></textarea></td>
     </tr>
          <tr>
       <td>Postcode: </td>
       <td><input name = "postcode" type="text" size="40" /></td>
     </tr>
     <tr>
       <td>Price per week (&pound;): </td>
       <td><input name = "price" type="text" size="40" /></td>
     </tr>
        <tr>
       <td>Furnished/Unfurnished: </td>
       <td><input name = "pandp" type="text" size="40" /></td>
     </tr>
     <tr>
       <td>Main Image: </td>
       <td><input type="file" name="photo" class="forms" /></td>
     </tr>  </table></p>
<p> <input type="submit" class="CMSbutton" value="Add" /></p>
</form>

サーバー上の目的のターゲット (images/properties/) に 2 つの画像を挿入する追加のコード行を追加する簡単な方法はありますか? " がイメージ名の末尾にあります)。

どちらも適度に小さいので、サムネイルのサイズ変更に悩まされることはありません。コードはほぼ完成しているので、すべてを再構築する必要はありません。

どんな助けでも大歓迎です

ありがとうございます

4

1 に答える 1

0

画像ファイルが正常に移動されている場合は、次の戦略を採用します。列is_uploadedを作成is_thumb_createdis_image_created、データベーステーブルに入れます。アップロードと移動が成功したら、最初のものを設定します。

次に、アップロードされた画像から「メイン」ビューと「サム」ビューを生成する cron またはその他のバックグラウンド システムを実行します (アップロードされた画像は、通常の画面サイズの画像には大きすぎる可能性があることに注意してください)。これらの画像が正常に生成されると、関連する列を「完了」として設定でき、これが発生するまで行は非ライブのままになります。

このアプローチは、高価な画像処理で Web リクエストを詰まらせないため、偶然にも、はるかにスケーラブルです。

于 2012-05-09T21:32:57.857 に答える