ホームページ >バックエンド開発 >PHPチュートリアル >phpでファイルのアップロード中にエラーが発生しました。解決してください。
Windows では正常に動作しますが、Linux ではファイルの移動が失敗したというメッセージが表示されます。助けてください。
コードは次のとおりです
<?phpinclude "../connss.php";include "../checkA.php";?><html><head><script language="javascript">function check(){ if(upform.filesname.value==""){ alert("名称不能为空!");upform.filesname.focus();return false; }}</script><style type="text/css"> body{font-size: 9pt;} input{background-color: #66CCFF;border: 1px inset #CCCCCC;} </style> </head><body><p> </p><center><form enctype="multipart/form-data" method="post" name="upform"> 轮播管理 : <table width="616" border="1"> <tr> <td width="54">标题:</td> <td width="269"><input name="title" id="title" type="text" size="30"></td> <td width="67">轮播序号</td> <td width="198"><select name="id"id="id" onChange="showfont(this.options[this.selectedIndex].value)"> <option value="1" selected>1</option> <option value="2">2</option> <option value="3">3</option> </select></td> </tr> <tr> <td>链接:</td> <td height="24" colspan="3"><input name="linke" id="linke" type="text" size="50" value="#"></td> </tr> <tr> <td> </td> <td colspan="3"><input name="upfile" type="file"> <input name="submit" type="submit" value="上传" onClick="return check();"></td> </tr> </table></form></body></center><?php $uptypes=array( 'image/jpg', 'image/jpeg', 'image/png', 'image/pjpeg', 'image/gif', 'image/bmp', 'image/x-png',); $max_file_size=2000000;$destination_folder="../../img/slider/";$filesname=$_POST[title];$id=$_POST[id];$link=$_POST[linke];if ($_SERVER['REQUEST_METHOD'] == 'POST') { if (!is_uploaded_file($_FILES["upfile"][tmp_name])) //是否存在文件 { echo "图片不存在!"; exit; } $file = $_FILES["upfile"]; if($max_file_size < $file["size"]) //检查文件大小 { echo "文件太大!"; exit; } if(!in_array($file["type"], $uptypes)) //检查文件类型 { echo "文件类型不符!".$file["type"]; exit; } if(!file_exists($destination_folder)) { mkdir($destination_folder); } $filename=$file["tmp_name"]; $image_size = getimagesize($filename); $pinfo=pathinfo($file["name"]); $ftype=$pinfo['extension']; $destination = $destination_folder.time().".".$ftype; if (file_exists($destination) && $overwrite != true) { echo "同名文件已经存在了"; exit; } if(!move_uploaded_file ($filename, $destination)) { echo "移动文件出错"; exit; } $pinfo=pathinfo($destination); $fname=$pinfo[basename]; $sql=mysql_query("update slider set pic='/img/slider/$fname',title='$filesname',link='$link' where id='$id'"); echo "<script language='javascript'>alert(' 轮播上传成功!');location='up_img.php';</script>"; }?> </body></html>
ヘルプ! ! ! ! !
そのディレクトリは存在しますか?エラープロンプト機能をオンにして確認してください。
そのディレクトリは存在しますか?エラープロンプト機能をオンにして確認してください。
ディレクトリは存在します。はい、窓の下です。エラー プロンプト機能をオンにする方法、ありがとうございますこれは Linux の権限の問題であるはずです。アップロードしたいディレクトリの親ディレクトリの権限を 777 に設定してみてください。コマンド chmod -R 777 をフォルダ パスに設定してください
Linux 権限である必要があります。問題は、アップロードしたいディレクトリの親ディレクトリ権限を 777 に設定してみてください。コマンド chmod -R 777 です。フォルダー パス
権限はすべて OK ですphp.ini でコマンド display_errors=On を指定し、サーバーを再起動します。
php.ini で display_errors=On をコマンドし、サーバーを再起動します。
すべてのプロンプトにエラーはありませんファイルは修正されましたか? echo ini_get('display_errors'); 値が何であるかを確認します。
php.ini で display_errors=On をコマンドし、サーバーを再起動します。
警告: move_uploaded_file(../../img/slider/1399728610.jpg): ストリームを開けませんでした: /alidata/www/www.7yuan.net/admin/fuction/up_img.php の 106 行目で許可が拒否されました