2013-12-08 75 views
-1

什麼,我想實現的是,我想創建一個鏈接,通過PHP
網頁上的新上載文件的某處下載文件的PHP代碼如下所示:
`是否可以創建<a href...</a>上傳的文件與PHP?

$target_path = "uploads/";  
$filename = $_FILES['userfile']['name'];  
$ext = pathinfo($filename, PATHINFO_EXTENSION);  
$allowed = array('gp5','gp4' ,'gp3'); 
$filename = $_FILES['userfile']['name']; 
$ext = pathinfo($filename, PATHINFO_EXTENSION); 
if(!in_array($ext,$allowed)) { 
    echo 'not a valid file extension'; 
} 
else { 
     $target_path = $target_path . basename($_FILES['userfile']['name']); 
     if(move_uploaded_file($_FILES['userfile']['tmp_name'], $target_path)) { 
      echo "The file ". basename($_FILES['userfile']['name'])." has been uploaded"; 
     } else { 
      echo "There was an error uploading the file, please try again!"; 
     } 
} 

`

+0

是的,當然是。只需將文件複製到可公開訪問的路徑(或確保'$ target_path'可到達)並鏈接到它。或者,添加一個可公開訪問的PHP文件,該文件執行一些身份驗證,然後從不可公開訪問的位置流式傳輸文件。 – meagar

+0

有關類似問題,請參閱https://www.google.com/search?q=site:stackoverflow.com+php%20download%20links%20for%20uploaded%20files。看來你還需要一個教程。 – mario

+0

@mario,google.com和stackoverflow都沒有這個問題的答案 –

回答

0

假設目標路徑某處web root,你可以簡單地爲move_uploaded_file做到這一點if聲明success部分中:

echo '<a href="'.$target_path.'">'.$file.'</a>'; 

編輯


原來你想要的是上傳文件的列表:

echo '<ol>'; 
$files=scandir('uploads'); 
foreach($files as $file) 
{ 
    if($file=='.'||$file=='..') continue; 

    echo '<li><a href="uploads/'.$file.'">Click Here to Download</a></li>'; 
} 
echo '</ol>'; 

編輯:從評論,你想要的一切是在單頁:

結合你將pload.php和example.html轉換爲example.php。將表單提交給自己。這樣你永遠不需要去另一個頁面。

+0

以及我如何放置某處?像在未排序的行或像這樣的smt? –

+0

我不知道「unsorted row」是什麼意思,但是當你調用'move_uploaded_file'時,如果你想移動到不同的位置,只需在調用'move_uploaded_file'前設置'$ target_path'。它實際上並不一定與原來的名稱相同。 – teh1

+0

我的意思是我在我的html頁面中有一個表格,它啓動了另一個外部文件中的php代碼,我需要的是創建一個鏈接到一個新創建的文件周圍的某個地方 –

相關問題