Model-View-Controller 構造を使用して Web サイトを開発しています。私のhtmlには、ユーザーがファイルを参照して選択し、ボタンをクリックしてファイルを送信し、コントローラーコードを呼び出すことができるフォームがあります。
if(upload_quotes($_FILES['userfile'])){
$msg = "Successful file upload";
$directory_list = array();
// get contents of directory here
// $directory_list = get_directory_contents($directory_list);
include '../view/processFileUpload.php';
}else{
$msg = "Unknown error occurred. Error: ".print_r($_FILES);
include '../view/errorPage.php';
}
最初の行: upload_quotes() は、モデル コードにある関数です。この関数は、アップロードが成功した場合は true を返し、失敗した場合は false を返します。ディレクトリ一覧を取得する関数呼び出しにもエラーがあるため、コメントアウトしました。2 つのモデル コード スニペット:
function upload_quotes($_FILES){
$uploadfile = '../../../TestSiteDataFiles/Quotes/'.$_FILES['userfile']['name'];
if(move_uploaded_file($_FILES['tmp_name'], $uploadfile)){
return true;
}else{
return false;
}
}
function get_directory_contents($directory_list){
$current_dir = '../../../TestSiteDataFiles/Quotes/';
$dir = opendir($current_dir);
//reads and outputs the directory
while(false !== ($file = readdir($dir)))
//strip out the two entries of . and ..
if($file != "." && $file !=".."){
array_push($directory_list, $file);
}
closedir($dir);
return $directory_list;
}
processFileUpload.php および errorPage.php ファイルは、それに応じて $msg 変数を出力しますが、成功として出力されることはありません。私は何を間違えたのかを調査するのに何時間も費やしましたが、php に関する私の限られた知識は何の助けにもなりません。ビュー ページには、「不明なエラーが発生しました。エラー: 1 が出力されます。ブラウザにポップアップするエラーは次のとおりです。
警告: move_uploaded_file() [function.move-uploaded-file]: copy() 関数の 2 番目の引数は、17 行目の C:\xampp\htdocs\Test Site\model\model.php のディレクトリにすることはできません
警告: move_uploaded_file() [function.move-uploaded-file]: 'C:\xampp\tmp\php487A.tmp' を C:\ の '../../../TestSiteDataFiles/Images/' に移動できませんxampp\htdocs\Test Site\model\model.php 行 17 配列 ( [name] => Managerial Accounting Davers Connect.txt [type] => text/plain [tmp_name] => C:\xampp\tmp\php487A. tmp [エラー] => 0 [サイズ] => 55 )
upload_quotes()
毎回 false として返されるため、モデル コード ( ) がエラーの原因であるように見えます。関数がget_directory_contents()
実行される可能性はありませんが、正しい結果も出力されません。
私はすべての提案に感謝し、あなたの意見に感謝します.