2012-02-21 85 views
0

我使用PHP上傳文件,然後我想抓住它的URL,以便我可以將其添加到數據庫。我怎樣才能將新文件的URL導入一個我可以用來通過MySQL插入的變量?PHP文件上傳..檢索URL

<?php 
// Configuration - Your Options 
    $allowed_filetypes = array('.jpg','.gif','.bmp','.png'); // These will be the types  of file that will pass the validation. 
    $max_filesize = 524288; // Maximum filesize in BYTES (currently 0.5MB). 
    $upload_path = './files/'; // The place the files will be uploaded to (currently a 'files' directory). 

$filename = $_FILES['userfile']['name']; // Get the name of the file (including file extension). 
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // Get the extension from the filename. 

// Check if the filetype is allowed, if not DIE and inform the user. 
if(!in_array($ext,$allowed_filetypes)) 
    die('The file you attempted to upload is not allowed.'); 

// Now check the filesize, if it is too large then DIE and inform the user. 
if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize) 
    die('The file you attempted to upload is too large.'); 

// Check if we can upload to the specified path, if not DIE and inform the user. 
if(!is_writable($upload_path)) 
    die('You cannot upload to the specified directory, please CHMOD it to 777.'); 

// Upload the file to your specified path. 
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename)) 
    echo 'Your file upload was successful, view the file <a href="' . $upload_path . $filename . '" title="Your File">here</a>'; 
// It worked. 
    else 
    echo 'There was an error during the file upload. Please try again.'; // It failed :(. 

?> 

回答

2
元素

您網站上的文件,以一個位置移動:

move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename)

也就是說$upload_path . $filename是你的相對URL到文件。您可以預先安排您的網站網址以獲取絕對網址。

0

實際上,在php上傳的文件存儲在一個臨時的地方/目錄進行進一步處理。
所以可以很好地得到它的從目前的網址,

$_FILES["file"]["tmp_name"] 


這是你給它保存文件的副本在你的服務器位置的URL。
如果要指定通過你的PHP應用程序上傳的文件默認loaction,
你可以在php.ini文件中定義它 - >編輯 - > upload_tmp_dir到您的願望
希望這有助於:)

+0

tmp-location在上傳完成後被刪除,因此無價值。看到husbas的解決方案的答案。 – OptimusCrime 2012-02-21 07:39:15

+0

@OptimusCrime都是相同的$ _FILES [「文件」] [「tmp_name」]複製它只是一種方式。這是一個簡單的問題和簡單的答案。 – 2012-02-21 08:27:26