ホームページ >バックエンド開発 >PHPチュートリアル >PHP $_FILES は通常 Windows ではファイルをアップロードしますが、Ubuntu ではファイルをアップロードできません

PHP $_FILES は通常 Windows ではファイルをアップロードしますが、Ubuntu ではファイルをアップロードできません

WBOY
WBOYオリジナル
2016-06-13 12:00:28915ブラウズ

PHP $_FILES は、Windows では正常にファイルをアップロードしますが、Ubuntu ではファイルをアップロードできません
次のソース コードは、Windows Apache では正常にファイルをアップロードできますが、Ubuntu Linux ではエラーを報告しませんが、アップロードされたファイルを指定できません。 目次。
解決方法を教えてください。
ありがとうございます!



$ErrorMessage=null;
$Message=null;
if(!empty($_FILES['fileField']['name '])){
if($_FILES['fileField']['error']>0){
$ErrorMessage='エラー: '.$_FILES['fileField']['error'] ;
}else{

if (is_uploaded_file($_FILES['fileField']['tmp_name'])){
//ファイルを移動
move_uploaded_file($_FILES['fileField' ]['tmp_name'],
'/var/www' .'/'.$_FILES['fileField']['name']);

$Message='アップロードに成功しました。 ';
}else{
$ErrorMessage='エラー: '.'アップロードに失敗しました! ';
}
}

}
?>
------解決策------------- - ------
おそらく権限の問題です。アップロード ディレクトリを 777 に変更してテストしてください。
------解決策---------- - ---------
Windows はシングルユーザー オペレーティング システムであり、アクセス許可の問題が発生することはほとんどありません。サーバー上であっても、Microsoft の強力なチームのおかげで、パーミッションの問題は非常にまれです。
Linux はマルチユーザー オペレーティング システムであるため (使用しているのが自分だけであっても)、パーミッションの問題はいたるところで発生します。オープンソース プロジェクトにはまだ技術サポートが弱く、これまでのところシンプルで高速なツールはありません

move_uploaded_file はアップロードされたファイルかどうかを判断します。is_uploaded_file は一度に何度も使用されています
move_uploaded_file は、存在しないディレクトリ、書き込み不可能なディレクトリ、または十分なスペースがないディレクトリを検出すると、エラー ステータス
を返し、何も判断せずに $Message=' アップロードが成功します。 '; は不適切です

-----解決策---------------------------- --
プログラムの先頭に、
ini_set('display_errors','on');
error_reporting(E_ALL);

を追加します。実行後、何が問題なのかはわかります。通常はフォルダーのアクセス許可の問題です。

Linux ターミナルでコマンド
を使用して、フォルダー グループ ユーザーを www-data
chgrp www-data フォルダーに設定できます。

グループ権限を設定します
chmod g rw フォルダー

------解決策------ -----
エラー メッセージを開いて確認してください
-----解決策------ --
'/var/www' .'/'. $_FILES[ 'fileField']['name']
ポスト ディレクトリ ファイルのアクセス許可

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。