在我的網站上,我允許用戶提交文件,並將它們發送到數據庫和我創建的文件目錄devFiles。它發送到數據庫罰款,但是當我發送到目錄,它永遠不會發送,我得到我的錯誤消息,我創建,看看它是否發送。我相信這個問題是與PHP - 上傳的文件沒有發送到文件目錄
if(is_file($dir.'/'.$file_name)==false){
//code...
}
但我想改變的條件,但沒有奏效。所以我想要做的就是發送提交到已創建的文件目錄的文件。這裏是我的代碼
PHP
$query = "INSERT INTO pack_screenshots(pack_id, file_name, file_tmp)VALUES(:packid, :file_name, :file_tmp)";
$stmtFileUpload = $handler->prepare($query);
$errors = array();
foreach($_FILES['file']['tmp_name'] as $key => $error){
if ($error != UPLOAD_ERR_OK) {
$errors[] = $_FILES['file']['name'][$key] . ' was not uploaded.';
continue;
}
$file_tmp = file_get_contents($_FILES['file']['tmp_name'][$key]);
$file_name = addslashes(trim($_FILES['file']['name'][$key]));
try{
$stmtFileUpload->bindParam(':packid', $packid, PDO::PARAM_STR);
$stmtFileUpload->bindParam(':file_name', $file_name, PDO::PARAM_STR);
$stmtFileUpload->bindParam(':file_tmp', $file_tmp, PDO::PARAM_STR);
$dir = "devFiles";
if(is_dir($dir)==false){
mkdir($dir, 0700);
}
if(is_file($dir.'/'.$file_name)==false){
if(!move_uploaded_file($file_tmp,$dir.'/'.$file_name)){
die("File didn't send!");
}
}else{
$_SESSION['invalid'] = true;
header("Location: developer_invalid.php");
exit;
}
$stmtFileUpload->execute();
$_SESSION['thankyou'] = true;
header("Location: developerUpload_thankyou.php");
exit;
}catch(PDOException $e){
$errors[] = $file_name . 'not saved in db.';
echo $e->getMessage();
}
}
檢查Apache的錯誤日誌,以獲得更詳細的錯誤信息 – Kai
我該怎麼做呢?在linux上使用: – Jagr
:'sudo vim/var/log/apache2/error.log' – Kai