PHP代码从我的Wamp服务器下载的文件夹下载.pdf&.docx文件
问题描述:
我写了一个PHP代码上传.pdf以及.docx文件到我的WWW目录(WAMP服务器)中创建的文件夹 这里是一块上传文件的代码:PHP代码从我的Wamp服务器下载的文件夹下载.pdf&.docx文件
<?php
if ((($_FILES["file"]["type"] == "application/vnd.openxmlformats- officedocument.word") || ($_FILES["file"]["type"] == "application/pdf")
|| ($_FILES["file"]["type"] == "application/x-pdf") || ($_FILES["file"] ["type"] == "application/acrobat")
|| ($_FILES["file"]["type"] == "applications/vnd.pdf") || ($_FILES["file"]["type"] == "text/pdf") || ($_FILES["file"]["type"] == "text/x-pdf"))
&& ($_FILES["file"]["size"]<5000000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br/>";
}
else
{
if (file_exists("CVs/".$_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] ."already exists";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"CVs/" . $_FILES["file"]["name"]);
$cv=$_FILES["file"]["name"];
上述代码适用于上传.pdf文件,但不能上传.docx文件。我需要知道我的错误才能上传.docx文件。
我又写了一个PHP代码来下载上传的.pdf文件。 我的代码看起来如下:
<?php
$connect=mysql_connect("localhost","root","");
if(!$connect) die("Server failed to connect ".mysql_error());
mysql_select_db("geosas_rosterofexperts") or die(mysql_error());
$result=mysql_query("SELECT * FROM user_table");
while($row=mysql_fetch_array($result))
{
$id=$row["id"];
$fname=$row["fname"];
$mname= $row["mname"];
$lname=$row["lname"];
$gender=$row["gender"];
$address=$row["address"];
$country=$row["country"];
$mobile=$row["mobile"];
$email=$row["email"];
$altmail=$row["altmail"];
$education=$row["education"];
$field=$row["field"];
$certification=$row["award"];
$cv=$row["cv"];
echo "".$id."";
echo "<table width='100%' border='1px'>
<tr style='Background-color:#CCCCCC;'>
<td><a href='file_update.php?id=$id'>Update</a></td>
<td><a href='file_delete.php?id=$id'>Delete</a></td>
</tr>
<tr>
<td> <p style='color:#FF3300;'>First name</p> ".$fname."</td>
<td> <p style='color:#FF3300;'>Middle name</p> ".$mname."</td>
</tr>
<tr>
<td> <p style='color:#FF3300;'>Last name</p> ".$lname."</td>
<td> <p style='color:#FF3300;'>Gender</p> ".$gender."</td>
</tr>
<tr>
<td colspan=2> <p style='color:#FF3300;'>Address</p> ".$address."</td>
</tr>
<tr>
<td> <p style='color:#FF3300;'>Country</p> ".$country."</td>
<td> <p style='color:#FF3300;'>Mobile</p> ".$mobile." </td>
</tr>
<tr>
<td> <p style='color:#FF3300;'>Email</p> ".$email." </td>
<td> <p style='color:#FF3300;'>Alt.Email</p> ".$altmail."</td>
</tr>
<tr>
<td> <p style='color:#FF3300;'>Education</p> ".$education."</td>
<td> <p style='color:#FF3300;'>Field</p> ".$field."</td>
</tr>
<tr>
<td><p style='color:#FF3300;'>Specialization</p> ".$certification."</td>
<td><a href='CVs/'".$cv."'>CV</a></td>
</tr>
</table>
";
}
?>
此链接带我到包含上传的文件,但我需要的是根据ID带我去确切的文件并下载文件时,我点击一个文件夹“简历”链接。所以,请帮我
答
1S前面回答
取代你MSWORD匹配代码:
($_FILES["file"]["type"] == "application/msword")
第二个答案
要强制下载,而不是浏览您的可以使用下载属性。
<a href='#' download='your_cutom_file_name'>Download</a>
注意:IE和safari不支持。
,或者如果你想要更长的路使用此代码:
<?php
$file = $_GET['file'];
download_file($file);
function download_file($fullPath){
if(headers_sent())
die('Headers Sent');
// Required for some browsers
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');
// File Exists?
if(file_exists($fullPath)){
// Parse Info/Get Extension
$fsize = filesize($fullPath);
$path_parts = pathinfo($fullPath);
$ext = strtolower($path_parts["extension"]);
// Determine Content Type
switch ($ext) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}