2016-09-01 23 views
0

画像の名前を変更すると、ニーズに合ったアップロードスクリプトが見つかりましたhereechoステートメントでアップロードされた画像の完全URLを表示

作品は素晴らしいですが、アップロード後に画像の完全なURLを表示するように変更する必要があります。

ある程度作業していますが、入力が必要です。

上で参照したスクリプトへの私のmod:

enter image description here

私が持っている問題はです:パスから..を削除する必要があります(このような出力の上

$url = isset($_SERVER['HTTPS']) ? 'https://' : 'http://'; 
     $url .= $_SERVER['SERVER_NAME']; 
     $url .= $_SERVER['REQUEST_URI']; 

     echo dirname(dirname($url)).$uploadResult; 
     echo "<br />"; 
     echo "<br />"; 
     echo "<a href='$uploadResult' target='_blank'><img src='$uploadResult' alt='picture'></a><br/>"; 
     echo "<br />"; 
     echo "<form><input name='imgcode' size='60' type='text' value='$uploadResult' /></form>"; 
     echo "<br />"; 

../images/01092016211821.gif)

str_replace関数を探索して試行しましたが、cアノテーションが機能します。

入力領域内に完全な画像のURLパスをエコーし​​て、簡単にコピーしたい場合もあります。

アドバイス/解決策をお寄せいただきありがとうございます。

<?php 
    if(isset($_POST["Send"])){  // If form is submited 
     require_once("uploadClass.php");  
     $file=$_FILES["fileField"];     // Get file from form 

     $destination="../images/"; 
     if (!file_exists($destination)) {  // If 'destination' folder dosn't exist, create 
      mkdir($destination); 
     } 

     $process=new Upload($destination);  // Set 'destination' as new default destination folder for upload 

     $uploadResult=$process->executeUpload($file); // Attach file to upload process 

     $url = isset($_SERVER['HTTPS']) ? 'https://' : 'http://'; 
     $url .= $_SERVER['SERVER_NAME']; 
     $url .= $_SERVER['REQUEST_URI']; 

     echo dirname(dirname($url)).$uploadResult; 
     echo "<br />"; 
     echo "<br />"; 
     echo "<a href='$uploadResult' target='_blank'><img src='$uploadResult' alt='picture'></a><br/>"; 
     echo "<br />"; 
     echo "<form><input name='imgcode' size='60' type='text' value='{dirname(dirname($url).$uploadresult)}' /></form>"; 
     echo "<br />"; 
     } 
?> 

<form action="?" method="POST" enctype="multipart/form-data"> 
    <table id="dyntable" class="table table-bordered"> 
     <tr> 
      <td> 
       File 
      </td> 
      <td> 
       <input type="file" name="fileField" id="fileField" placeholder=""> 
      </td> 
     </tr> 
     <tr> 
      <td colspan="2"> 
       <center> 
        <button type="submit" name="Send">Send</button> 
        <button type="reset">Reset</button> 
       </center> 
      </td> 
     </tr> 
    </table> 
</form> 

uploadClass.php:ここ

は...

example.phpいっぱいスクリプトです

<?php 
    /// Classe d'upload de uploaded_file 
    class Upload{ 
     protected $destination="Img/Uploads/"; //Default destination folder 
     protected $max_file_size=7500000;  //Max file size 
     protected $authorized_extensions=array('png','jpg','gif','bmp','jpeg','pdf','word','txt');  //Authorised file extensions 

     public function __construct($dest=null,$types=null){ 
      $this->setParameters($dest,$types); 
     } 

     // Set general parameters 
     public function setParameters($dest=null,$types=null){ 
      if($dest!=null && $dest!=""){ 
       $this->destination=$dest; 
      } 
      if($types!=null && $types!=""){ 
       $this->authorized_extensions=$type; 
      } 
     } 

     // Return uploaded file path or errorMessages list 
     public function executeUpload($uploaded_file,$destination=null){ 
      if($destination==null || $destination==""){ 
       $destination=$this->destination; 
      } 
      if (!file_exists($destination)) {  // If 'destination' folder dosn't exist, create 
       mkdir($destination); 
      } 

      $i=0; 
      $errorMessage=""; 
      $errorMessage1=""; 
      $errorMessage2=""; 
      if (!empty($uploaded_file)){ //If existing file is really submited 
       //On vérifie si la taille du uploaded_file envoyé est acceptable 
       $file_size = $uploaded_file['size']; 
       if ($file_size > $this->max_file_size) 
       { 
        $errorMessage = "File too heavy. Current max file size is : ".$this->max_file_size; 
        return ""; 
       } 

       //On définit les variables : 
       $extensions_valides = $this->authorized_extensions; //Liste des extensions valides 
       if ($uploaded_file['errorMessage'] > 0) 
       { 
        $i++; 
        $errorMessage = "File transfert failed"; 
       } 

       $extension_upload = strtolower(substr(strrchr($uploaded_file['name'], '.') ,1)); //Get uploaded_file extension 
       if (!in_array($extension_upload,$extensions_valides)) 
       { 
        $i++; 
        $errorMessage2 = "Extension forbidden"; 
       } 
      } 
      //echo $errorMessage2; 

      if ($i == 0) // If any errorMessage have been detected 
      { 
       if (isset($uploaded_file['size'])) 
       { 
        //Move the uploaded_file to the desired place 
        $ico="chaine"; 
        $horodatage=date("dmYHis"); 
        $nomico = str_replace(' ','',$ico).".".$extension_upload; 
        $ico = $destination.str_replace(' ','',$horodatage).".".$extension_upload; 
        move_uploaded_file($uploaded_file['tmp_name'],$ico); 

        return $ico; 
       }else{ 
        return NULL; 
       } 
      }else{ 
       echo "<h3>Upload failed</h3>"; 
       echo "<table><tr><td> <b><u>Cause(s) :</u></b></td></tr><tr><td>"; 
       echo $errorMessage.'<br>'; 
       echo $errorMessage1.'<br>'; 
       echo $errorMessage2.'<br>'; 
       echo "</td></tr></table>"; 
       //return "0"; 
       return NULL; 
      } 
     } 
    } 
?> 

@Forbs応答からの入力に基づいて、私の解決策:

<?php 
    if(isset($_POST["Send"])){  // If form is submited 
     require_once("uploadClass.php");  
     $file=$_FILES["fileField"];     // Get file from form 

     $destination="../images/"; 
     if (!file_exists($destination)) {  // If 'destination' folder dosn't exist, create 
      mkdir($destination); 
     } 

     $process=new Upload($destination);  // Set 'destination' as new default destination folder for upload 

     $uploadResult=$process->executeUpload($file); // Attach file to upload process 

     $url = isset($_SERVER['HTTPS']) ? 'https://' : 'http://'; 
     $url .= $_SERVER['SERVER_NAME']; 
     $url .= $_SERVER['REQUEST_URI']; 

     if (substr($uploadResult,0,2) == "..") 
     $uploadResult = substr($uploadResult,2); 

     echo dirname(dirname($url)).$uploadResult; 
     echo "<br />"; 
     echo "<br />"; 

     } 
?> 

<form action="?" method="POST" enctype="multipart/form-data"> 
    <table id="dyntable" class="table table-bordered"> 
     <tr> 
      <td> 
       File 
      </td> 
      <td> 
       <input type="file" name="fileField" id="fileField" placeholder=""> 
      </td> 
     </tr> 
     <tr> 
      <td colspan="2"> 
       <center> 
        <button type="submit" name="Send">Send</button> 
        <button type="reset">Reset</button> 
       </center> 
      </td> 
     </tr> 
    </table> 
</form> 

<textarea id="myText" rows="3" cols="80"><?php echo dirname(dirname($url)).$uploadResult; ?></textarea> 

プロジェクトを終了するのに十分な問題を解決します。

+0

これを達成するために何をしましたか?あなたのコードを教えてください。 – tanaydin

+0

@tanaydin私が新しくなっているのは、アップロードスクリプトへのリンクを提供するだけでよいのか、それともすべて貼り付けるべきなのかわからなかったからです。リンクを表示するには良い方法ではありません@ http://www.phpclasses.org/package/9906-PHP -Validate-and-process-an-uploaded-file-.html – Woody

+0

私の悪い@tanaydinユーザーがphpclassesサイトに登録/ログインしなければならないことを知らなかった。スクリプト全体を追加しました。 – Woody

答えて

0

1)先頭に表示されている2つのピリオドを削除しますか?それを解決するために

if (substr($uploadresult,0,2) == "..") 
    $uploadresult = substr($uploadresult,2); 

2)理由

値= '{DIRNAME(DIRNAME($のURL)。$のuploadresult)}' に入力を変更しませんか?

+0

1)はい、2つのピリオドを削除します。それらを取り除くようにURLには表示されません。あなたが推奨するコードをどこに置くべきかは肯定的ではない。 2)推奨値を追加するときは、{dirname(dirname(http://myurl.net/testbed/AdminLTE/upload/?)}) – Woody

+0

ありがとう@Forbs!あなたのインプットは私を得ました。 $ uploadresult〜$ uploadResultのようないくつかの変更を加えなければならなかった。あなたの答えを受け入れる。 – Woody

関連する問題