[英]How to retrieve uploaded files using php
好。 自2011年8月24日以來,我一直在此站點上搜索。(無關緊要),該方法可以顯示用戶上傳的文件。 我在管理方面有表格,一切正常。 我還有一個表格,顯示用戶填寫的表格也可以使用。 但是我無法在表上查看文件或其名稱。
我的數據庫表具有一個未簽名的主ID auto_increment int(11)。
這是我寫的代碼:
//This gets all the other information from the form
$company=$_POST['company'];
$location=$_POST['location'];
$pic=($_FILES['userfile']['name']);
$query = "INSERT INTO user_DB VALUES ('','$company', '$location', '$userfile' )";
//target to the path of my files
$target_path = "uploads/post_id/";
if(!is_dir($target_path)) mkdir($target_path);
$uploadfile = $target_path . basename($_FILES['userfile']['name']);
//Move the uploaded file to $taget_path
(move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile));
在您填寫詳細信息的表格上,我具有以下內容:
<tr>
<td><label for="company_name">Company Name</label></td>
<td><input type="text" name="company" id="company" value="" size="38" /></td>
</tr>
<tr>
<td><label for="location">Location</label></td>
<td><input type="text" name="location" id="location" value="" /></td>
</tr>
<tr>
<td>Upload a File:</td>
<td><input name="userfile" id="userfile" type="file" /></td>
</tr>
顯示查詢結果的前端表看起來像這樣,只是文件feild。
echo "<td>";
echo "<a href=../admin/uploads/post_id/> $row'userfile'</a>";
echo "</td>";
如您所見,我正在嘗試獲取文件名以及文件本身。 如果它是pdf / jpg / doc,則單擊鏈接時應該可以查看/下載。
螞蟻的想法...
一些建議,您可以更改以使其正常工作。
您的表單標簽是什么樣的? 不要忘了按如下方式包含enctype
參數:
<form type="post" action="" enctype="multipart/form-data">
...
</form>
$company = mysql_real_escape_string($_POST['company']);
$location = mysql_real_escape_string($_POST['location']);
$pic = mysql_real_escape_string($_FILES['userfile']['name']);
上面的幾行是幫助防止查詢遭受SQL注入攻擊的第一步。
$userfile
不存在,因為您實際上已將文件名分配給$pic
因此查詢應如下所示:
$query = "INSERT INTO user_DB
VALUES ('','$company', '$location', '$pic')";
現在鏈接到輸出表中的文件:
echo "<td>";
echo "<a href=" . $target_path . basename($row['userfile']) . ">
{$row['userfile']}</a>";
echo "</td>";
我認為靈魂取代這個
$query = "INSERT INTO user_DB VALUES ('','$company', '$location', '$userfile' )";
與
$query = "INSERT INTO user_DB VALUES ('','$company', '$location', '$pic' )";
表單enctype是您可能會錯過的最基本的東西。 許多初學者會這樣做。 因此,只需檢查表單中是否具有enctype屬性即可。
<form enctype="multipart/form-data">
只有擁有此權限,您才能通過表單上傳文件。 您可能會出錯的另一個地方是
$query = "INSERT INTO user_DB VALUES ('','$company', '$location', '$userfile' )";
您將文件名存儲在名為$ pic的變量中,但是在這里已給定$ userfile,因此只需嘗試將其更改為$ pic。
您可以將一列用作auto_increament
當您插入新用戶時,使用此查詢可以獲得已注冊用戶的總和
$ qry = mysql_qyery(“從users
選擇*”); 您可以通過使用獲得用戶數
$ count = mysql_num_rows($ qry); 因此,在此之后,您插入一個新用戶,他的ID將為
$ count1 = $ count + 1; $ id ='F'。$ count1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.