簡體   English   中英

無法顯示php上載的上傳

[英]Can't show upload filed on php

更新:好的,謝謝您的幫助,我設法用一種簡單的形式來顯示圖片(視頻將在稍后發布),但是我仍然對ajax感到困惑……下面是我對ajax的編碼嘗試(對於由於某種原因,它無法讀取回聲),而在遠端是我更簡單的編碼形式。

test.php代碼:

<input name="file" id="file" type="file" />
<br /><br />


<script>

var fileInput = document.querySelector('#file')
fileInput.onchange = function() {

var xhr = new XMLHttpRequest();

xhr.open('POST', 'test2.php');

xhr.upload.onprogress = function(e) {
    progress.value = e.loaded;
    progress.max = e.total;
};

xhr.onload = function() {
    var uploadStatus = document.getElementById("finish");
    document.getElementById('finish').innerHTML = 'Upload done !';      
};

var form = new FormData();
form.append('file', fileInput.files[0]);

xhr.send(form);

};

</script>

<p id="finish">
</p>

test2.php代碼:

$filename = $_FILES['file']['name'];
$targetpath = getcwd() . '/' . $filename;
@move_uploaded_file($_FILES['file']['tmp_name'], $targetpath);
echo '<img src="' . $filename . '" height="100px" width="100px"/>';

?> 

和簡單的表單代碼:

<!DOCTYPE html>
<html>
<body>
<form method="post" action="test.php" enctype="multipart/form-data">
<input name="file" id="file" type="file" accept="video/*" />
<br /><br />
<input type="submit"/>
</form>
<br/>

<?php 


$filename = $_FILES['file']['name'];
$targetpath = getcwd() . '/' . $filename;
@move_uploaded_file($_FILES['file']['tmp_name'], $targetpath);
echo '<img src="' . $filename . '" height="100px" width="100px"/>';

?> 

ps:我清除了標簽,很抱歉我縮進有問題,但仍然無法正常工作。

從哪里開始?

  • 您沒有 </script>標記。
  • 您有3個 </body>標簽。 刪除前兩個,只保留最后一個。
  • 和2 </html>標簽。 刪除第一個,只保留最后一個。
  • Web服務器將文件存儲在$_FILES["file"]["tmp_name"] ,而不是$_FILES['file']['name'] (最后一個只是原始文件名,因為它是在瀏覽器中上傳的。
  • 您需要將臨時文件移動到Web服務器必須可寫的所選位置,因為在完成上載請求后,臨時文件將被刪除。
  • 您已經在$ path中包含了$ name,但是再次用$ name回顯了$ path。 雖然您不應該回應任何一個。 您應該回顯將臨時文件移動到的路徑和文件名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM