2012-04-20 75 views
0

我有以下的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(); 
    ?> 

上述代碼容易上傳與臨時名稱的文件:由隨機數預先考慮以下XAMPP文件夾路徑upload_image:http://localhost/abc/images/

在db表中,我將圖像名稱修改爲'randomnumber'upload_image.jpg。 我需要的是我需要的db表與完整路徑http://localhost/abc/images/「一起顯示圖像名稱rand.number'upload_image.jpg

我怎麼能做到這一點?

我試圖取代uploaddir的「http://本地主機/ ABC /圖片/」,並試圖將其添加到新的文件名,但它返回以下警告:

<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:權限被設置爲讀取和寫入 表包含兩個字段:ID和圖像的ID設置爲初級和自動增量

回答

1

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

$_SERVER陣列可以訪問某些http請求細節,例如路徑

您不應該嘗試將上傳的文件從/移動到像http一樣的只讀協議。取而代之的是從php tmp目錄中獲取它。也不要在移動時啓動這樣的文件名,這會導致你的錯誤。

+0

我試圖實現$ _Server數組,但失敗慘敗。有XAMPP和毫安之間的任何差別..我應該更喜歡在MAMP XAMPP – madLokesh 2012-04-21 04:53:24

+0

收到以下錯誤:
警告: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 2012-04-21 05:35:17

+0

警告:move_uploaded_file()以[function.move-uploaded-file] :無法將'/ Applications/XAMPP/xamppfiles/temp/phpcM4Ln7'移動到'http:// localhost/abc/images/96818u pload_image.jpg」在/Applications/XAMPP/xamppfiles/htdocs/xampp/abc/images/imageupload.php上線
madLokesh 2012-04-21 05:36:20