我有一個表單,用戶上傳圖像,然後圖像通過Ajax傳遞給PHP。將圖像上傳到服務器後,PHP會將$target_file
回顯到Ajax。 $target_file
實質上是圖像的URL。 Ajax將採用該變量,然後通過相同形式的「只讀」輸入文本框顯示它。經過測試,我已經成功上傳圖片。唯一的問題是當成功上傳圖像時,PHP腳本的整個代碼將顯示在「只讀」輸入框中,而不是應該顯示圖像URL的$target_file
變量。Ajax返回值顯示代碼
這是我有:
HTML
<form class="image_upload" method="post" action="ajax.php">
<input name="server_upload" type="file">
<input type="text" name="image_url" readonly>
<input type="submit" value="UPLOAD TO SERVER">
</form>
阿賈克斯
$('.image_upload').on('submit', function(e) {
e.preventDefault();
e.stopImmediatePropagation();
if ($('.image_upload').valid())
{
$.ajax({
type: 'POST',
url: 'ajax.php',
data: new FormData(this),
processData: false,
contentType: false,
success: function(data) {
$('input[name=image_url]').val(data);
}
})
}
})
PHP
if (isset($_FILES["server_upload"]))
{
$name = $_FILES["server_upload"]["name"];
$tempName = $_FILES["server_upload"]["tmp_name"];
$target_file = $_SERVER['DOCUMENT_ROOT'] . "/stories/media/images/$name";
if (getimagesize($target_file) == true)
{
$ext = pathinfo($name, PATHINFO_EXTENSION);
$name = basename($name, "." . $ext);
$name = $name . uniqid() . "." . $ext;
$target_file = $_SERVER['DOCUMENT_ROOT'] . "/stories/media/images/$name";
}
move_uploaded_file($tempName, $target_file);
echo $target_file;
}
如何解決此問題,以便顯示URL?爲什麼它打印出我所有的PHP代碼?
我不敢相信我忘了說!它現在可以正常工作!我會盡快接受你的回答:) – user2896120