画像の名前を変更すると、ニーズに合ったアップロードスクリプトが見つかりましたhereechoステートメントでアップロードされた画像の完全URLを表示
作品は素晴らしいですが、アップロード後に画像の完全なURLを表示するように変更する必要があります。
ある程度作業していますが、入力が必要です。
上で参照したスクリプトへの私のmod:
私が持っている問題はです:パスから..を削除する必要があります(このような出力の上
$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>
プロジェクトを終了するのに十分な問題を解決します。
これを達成するために何をしましたか?あなたのコードを教えてください。 – tanaydin
@tanaydin私が新しくなっているのは、アップロードスクリプトへのリンクを提供するだけでよいのか、それともすべて貼り付けるべきなのかわからなかったからです。リンクを表示するには良い方法ではありません@ http://www.phpclasses.org/package/9906-PHP -Validate-and-process-an-uploaded-file-.html – Woody
私の悪い@tanaydinユーザーがphpclassesサイトに登録/ログインしなければならないことを知らなかった。スクリプト全体を追加しました。 – Woody