伙計們,我今天非常沮喪,因為我的 php 文件錯誤它沒有將文件上傳到我的文件夾,也沒有錯誤消息實際上我正在創(chuàng)建一個聊天網(wǎng)站,所以我已經(jīng)完成了它,但問題是在我的服務(wù)器中它無法工作。我的代碼<script type="text/javascript"><?php$upload_dir = $_SERVER['DOCUMENT_ROOT'];if (isset($_GET['room']) && isset($_GET['room']) ) { if (isset($_FILES['img'])) { require 'db_connect.php'; $room = mysqli_real_escape_string($conn,$_GET['room']); $room = htmlentities($room); $name = mysqli_real_escape_string($conn,$_POST['hidden']); $name = htmlentities($name); $img = $_FILES['img']; $imgName = $img['name']; $imgAddr = $img['tmp_name']; $imgErr = $img['error']; $imgSize = $img['size']; if ($imgErr == 0) { if ($imgSize<=2000000) { $fileExt = explode('.',$imgName); $fileExt_check = end($fileExt); $allowedExts = array('png','jpg','jpeg','gif'); if (in_array($fileExt_check,$allowedExts)) { if(copy($imgAddr,$upload_dir.'/ImgsSended/'.$imgName)){ date_default_timezone_set('Asia/Kolkata'); $date = date("h:i A d F - Y"); $sql = "INSERT INTO `myMessages` ( `msg_type` , `msg`, `room`, `name`, `stime`) VALUES ('file','imgsSended/$imgName', '$room', '$name', '$date')"; $res = mysqli_query($conn,$sql); if ($res) { echo ' alert("Image Sended Successfully"); location.href = "rooms.php?roomname='.$room.'"; '; } }ImgsSend 是我要在其中上傳圖像的文件夾名稱我在此頁面中通過文件上傳表單發(fā)送了一個發(fā)布請求
1 回答

有只小跳蛙
TA貢獻1824條經(jīng)驗 獲得超8個贊
您應(yīng)該學(xué)習(xí)如何調(diào)試 PHP 代碼。
正如您所說,您的copy()
ormove_uploaded_file()
條件始終為假,因此 else 條件生效。發(fā)生這種情況是因為如果文件無法移動,copy()
則 或返回 false。move_uploaded_file()
在大多數(shù)情況下,會發(fā)生這種情況,因為給定的文件無效。
在這種情況下,您可以調(diào)試數(shù)據(jù)。只需測試一下,您正在使用的內(nèi)容包含哪些數(shù)據(jù)。文件名有效嗎?目的地有效嗎?一切都可以訪問嗎?
echo "<pre>"; var_dump($imgAddr, $upload_dir . '/ImgsSended/' . $imgName); echo "</pre>";
現(xiàn)在您可以看到您正在嘗試執(zhí)行的操作的內(nèi)容。哪些數(shù)據(jù)包含$imgAddr
變量。它是有效的文件名嗎?目的地包含什么?它是現(xiàn)有目錄的有效路徑嗎?PHP可以訪問這個目錄嗎?
您可以使用以下代碼行來測試是否存在。
is_dir($upload_dir . '/ImgsSended/');
如果返回true
,則給定目錄存在,這不可能是錯誤的原因。
它總是與調(diào)試有關(guān)。必須閱讀并理解錯誤。它們包含對您有用的信息。
- 1 回答
- 0 關(guān)注
- 121 瀏覽
添加回答
舉報
0/150
提交
取消