2016-11-20 15 views
1

LinodeにLAMPをインストールしたubuntuを正常にインストールしました。それ以前はすべてのウェブサイトがgodaddyでホストされていました。 LocalhostとXAMPPのすべてがうまく動作します。UbuntuでLAMPを設定した後、PHPがファイルをアップロードできない16.04 LTS

ただし、この新しいサーバー@ Linodeでは、私はすべてのPHPファイルをサーバーにアップロードしてから、製品をアップロードし始めました。

mysqlが挿入されていますが、abc.com/imgフォルダが空です。

require "../db/order.php"; 
$order=new order(); 

$allowed=['image/jpeg','image/png','image/gif']; 

if(empty($_FILES['photos']['name'][0])){ 

    echo "<h1>plz select photos</h1>"; 

}else{ 

    foreach ($_FILES['photos']['type'] as $abc){ 

     if(!in_array($abc,$allowed)){ 
      echo ' 
      <div style=" margin: auto; 
       width: 60%; 
       border: 1px solid #ff0000; 
       padding: 10px;"> 
      ';   

      echo '<p><a href="upload_picture.php">back to upload</a></p>'; 
      echo '</div>'; 

      $check=false; 
     }else{ 
      $check=true; 
     } 
    } 

    if($check==true){ 

     $path = "../../img/"; 
     for($i=0;$i<count($_FILES['photos']['name']);$i++){ 
      move_uploaded_file($_FILES['photos']['tmp_name'][$i],iconv("utf-8", "cp936", $path.$_FILES['photos']['name'][$i])); 
      $img_name[]=$_FILES['photos']['name'][$i]; 
     } 

     $order->add_img($img_name); 

    } 
} 

php.iniの

私は

upload_tmp_dir =/tmp 

;upload_tmp_dir 

から変更されている。しかし、それはまだ動作しません。誰でも助けることができますか?

+0

ウェブサーバーのアカウントに「/ tmp」が表示されます/アクセスできます – RiggsFolly

+0

@RiggsFollyはい!私はFTPを使ってそれをルートで見ることができます – gosulove

+0

ウェブサーバは 'root'アカウントを使って走ってはいけません! – RiggsFolly

答えて

1

ファイルがアップロードされていない理由はいくつかあります。

まず、move_uploaded_file()の前にis_uploaded_file()を使用して、ファイルが本当にサーバーに届いているかどうかを確認することをお勧めします。

if (is_uploaded_file($_FILES['photos']['tmp_name'][$i])) { 
    // move the file 
} else { 
    echo 'file not uploaded'; 
} 

HTMLフォームタグにenctype="multipart/form-data"がありますか?

file_uploads = Onはphp.iniにありますか?

upload_max_filesize

+0

それは私の思う私のPHPコーディングで何も問題はありませんか?コーディングに間違いがある場合は、Localhost + Godaddyホスティングで動作しません。私はそれが私のVPS設定またはsthに関連していると思います – gosulove

+0

はい、私は同意します。問題はサーバーの設定に起因する可能性があります。 'file_uploads'と' upload_max_filesize'はphp.iniファイルのPHP設定です。これらの設定を見てください - 彼らはおそらく原因です。 – ghatzhat

+0

PHP7を使用している場合(デフォルトはUbuntu 16のデフォルトです)、php.iniは/etc/php/7.0/apache2/php.ini – ghatzhat

関連する問題