0

データベースに挿入された名前でサーバーに画像をアップロードする次のphpがあります。

<?php

//Uploading File to server php folder//
$uploaddir = ''; //Uploading to same directory as PHP file

$file = basename($_FILES['userfile']['name']);

$uploadFile = $file;

$randomNumber = rand(0000, 99999); 

$newName = $uploaddir . $randomNumber . $uploadFile;

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo "Temp file uploaded. \r\n";
 } 

else {
echo "Temp file not uploaded. \r\n";
}


if (move_uploaded_file($_FILES['userfile']['tmp_name'], $newName)) {
$postsize = ini_get('post_max_size'); 
$canupload = ini_get('file_uploads');  
$tempdir = ini_get('upload_tmp_dir'); 
$maxsize = ini_get('upload_max_filesize');
echo "http://localhost/abc/images/{$newName}" . "\r\n" . $_FILES['userfile']['size'] .    "\r\n" . $_FILES['userfile']['type'] ;
}



//Making sql db connection to store image path in db table//

$host = "localhost";

$username = "root";
$password = "****";

$database = "userauth";

mysql_connect($host, $username);

mysql_select_db($database) or die("Unable to find database");

$image = $_GET["images"];

$qry = "INSERT INTO image VALUES ('','$newName')";

mysql_query($qry);

mysql_close();
    ?>

上記のコードは、一時的な名前のファイルを簡単にアップロードします: upload_image の前に乱数を追加して、次の xampp フォルダー パス: http://localhost/abc/images/

db テーブルで、画像名を「randomnumber」upload_image.jpg に変更します。私が必要としているのは、http://localhost/abc/images/ 'rand.number'upload_image.jpg のようにフル パスと共にイメージ名を表示するための db テーブルが必要なことです。

どうすればこれを達成できますか?

uploaddir を「http://localhost/abc/images/」に置き換えて、新しいファイル名に追加しようとしましたが、次の警告が返されました。

<b>Warning</b>:  move_uploaded_file(http://localhost/abc/images/33760upload_image.jpg)   [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: failed to open   stream: HTTP wrapper does not support writeable connections in    <b>/Applications/XAMPP/xamppfiles/htdocs/xampp/abc/images/imageupload.php</b> on line    <b>24</b><br />
<br />
<b>Warning</b>:  move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: Unable to move '/Applications/XAMPP/xamppfiles/temp/phpdlCc5N' to 'http://localhost/abc/images/33760upload_image.jpg' in <b>/Applications/XAMPP/xamppfiles/htdocs/xampp/abc/images/imageupload.php</b> on line   <b>24</b>
<br />

貴重なガイダンスが必要です。

PS: パーミッションは読み取りと書き込みに設定されています テーブルには 2 つのフィールドが含まれています: ID と、ID がプライマリおよび自動インクリメントに設定されたイメージ

4

1 に答える 1

1

http://php.net/manual/en/reserved.variables.server.php

配列を使用すると$_SERVER、パスなど、いくつかの http 要求の詳細にアクセスできます

アップロードされたファイルを / から http のような読み取り専用プロトコルに移動しようとしないでください。代わりに、php tmp ディレクトリから取得してください。また、移動中にそのようなファイル名を開始しないでください。これにより、エラーが発生すると思います。

于 2012-04-20T11:59:57.017 に答える