2012-04-20 8 views
0

I持っているデータベースに挿入された名前を持つサーバに画像をアップロードし、次のPHP:PHP:イメージ名の前にHTTPパスを付加した画像をアップロードしますか?

<?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(); 
    ?> 

上記のコードは簡単に一時的な名前を持つファイルをアップロードします:http://localhost/abc/images/

:以下XAMPPフォルダパスに乱数で先頭に追加upload_imageを

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

どうすればこの問題を解決できますか?

私は「のhttp:// localhostの/ ABC /画像/」とuploaddir置き換えることを試みて、新しいファイル名に追加しようとしたが、それは次の警告が返さ:必要

<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:あなたは、いくつかのhttpリクエストの詳細にアクセスすることができます$_SERVER配列を有する一次および自動インクリメントにIDが設定されたIDと画像

答えて

1

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

:権限が 表を読み書きするために設定されている2つのフィールドが含まれています、例えば

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

+0

$ _Server配列を実装しようとしましたが、惨めに失敗しました。 XAMPPとMAMPの間に何らかの違いがある..私はXAMPP – madLokesh

+0

次のエラー取得の上にMAMPを好む必要があります。
警告:move_uploaded_file(のhttp://localhost/abc/images/96818upload_image.jpgを)[function.move-uploaded-file]:に失敗しました。オープンストリーム:HTTPラッパーはライン上/Applications/XAMPP/xamppfiles/htdocs/xampp/abc/images/imageupload.phpで書き込み可能な接続をサポートしていない

madLokesh

+0

警告:move_uploaded_file()[function.move-uploaded-file] : '/ Applications/XAMPP/xamppfiles/temp/phpcM4Ln7'を 'http:// localhost/abc/images/96818uに移動できませんライン
madLokesh

関連する問題