通常我會簡化我的代碼,或者只顯示給我麻煩的部分。但在這種情況下,我不知道發生了什麼問題,所以我粘貼了整個事情。對不起。php move_uploaded_file不工作
好的,下面的腳本獲取由ajax發送的值並將它們上傳到sql數據庫中。 完成後,它將圖像從一個文件夾移動到另一個文件夾中。
整個腳本可以正常工作,除了'move_uploaded_file'位之外,它還可以做它應該做的事情。所以它正確地執行了sql部分,並且所有會話名稱,字符串編輯等都是正確的。
我回應了腳本生成的文件的名稱,它們是正確的。這些文件夾也可以被讀取和寫入。等待移動的文件存在於該文件夾中。
我錯過了什麼?爲什麼move_uploaded_file不起作用?預先感謝所有。
--changed move_uploaded_file()以重命名(),僅適用於通過POST上載的文件還沒有working--
<?php
session_start();
unset($_SESSION['reference']);
$name = $_GET['name'];
$category = $_GET['category'];
$subCategory = $_GET['subCategory'];
$date = $_GET['date'];
$address = $_GET['address'];
$city = $_GET['city'];
$state = $_GET['state'];
$host = $_GET['host'];
$info = $_GET['info'];
$adder = $_SESSION['user'];
//turn into array
$array = array();
$array[0]=$name;
$array[1]=$category;
$array[2]=$subCategory;
$array[3]=$date;
$array[4]=$address;
$array[5]=$city;
$array[6]=$state;
$array[7]=$host;
$array[9]=$info;
$array[11]=$adder;
try {
$con = new PDO('mysql:host=localhost;dbname=test');
//$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$refid=$con->prepare(" SELECT MAX(id) FROM createX ");
$refid->execute();
$id = $refid->fetchColumn();
$id=$id+1;
$newDate = str_replace('-', '', $date);
$reference = $id.$newDate;
$array[10]=$reference;
$array[8] = $_SESSION['imagePath'].$reference.'.'.$_SESSION['imageExt'];
$insert = $con->prepare(" INSERT INTO createX
(name,category,subCategory,date,address,city,state,host,imagePath,info,ref,adder)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?) ");
$insert->execute($array);
rename('../tempUploads/'.$_SESSION['imagePath'].$_SESSION['imageExt'] ,
'../uploads/'.$_SESSION['imagePath'].$reference.'.'.$_SESSION['imageExt']);
}
catch(PDOException $e) { //try
echo 'error';
//echo 'ERROR: ' . $e->getMessage();
}
$_SESSION['reference'] = $reference;
unset($array);
session_write_close();
?>
move_uploaded_files僅適用於通過POST上傳的文件。源文件名應該來自$ _FILES ['xxx'] ['tmp_name']'。 – Barmar
文件已發佈? – mehdi
嘿,所以文件上傳到服務器的臨時文件。然後我把它移到我自己的臨時文件夾(不是服務器臨時文件夾),所以我可以查看它。現在我想從mytemp文件夾移動到另一個文件夾,我的permant上傳文件夾。 – seamus