php - Wamp Serverが保存されているフォルダーから.pdfおよび.docxファイルをダウンロードするためのPHPコード

原文 php

WWWディレクトリに作成されたフォルダー(WAMPサーバー)に.pdfファイルと.docxファイルをアップロードするためのPHPコードを作成しました
ファイルをアップロードするコードの一部を次に示します。

<?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ファイルをアップロードするために私の間違いを知る必要があります。

アップロードした.pdfファイルをダウンロードするために、PHPコードをもう一度書きました。
私のコードは以下のようです:

<?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に従って正確なファイルに移動し、「CV」リンクをクリックしたときにファイルをダウンロードすることです。だから、助けてください
答え
1秒前


mswordマッチングコードを次のコードに置き換えます。

 ($_FILES["file"]["type"] == "application/msword")



2番目の答え


ナビゲートする代わりにダウンロードを強制するには、download属性を使用できます。

   <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";
}
関連記事

php - フォームから選択した複数のPHPエコーバック

php - 別のページとしてページに投稿する-Facebook API

php - 最初の行のみを表示する演算子間のMySQL

php - 特定の投稿からWordpressブログフィードを開始する

php - laravelのCron(https://github.com/liebig/cronを使用)

php - Joomlaの兄弟アイテムを一覧表示します! K2商品ページ

php - インポートされた依存関係注入構成にコンテナーがありません

php - スクリプトを呼び出して、それをPHPのバックグラウンドで実行し続けますか?

php - コードは更新時に実行されます

php - ACLチュートリアルに従った後、CakePHP 2.0.0にログインできません