Это то, что я делал несколько раз, однако, используя тот же метод, он теперь не будет работать. Это простой сценарий загрузки изображений, в котором он отправляется на некоторый PHP для обработки, и я хочу, чтобы PHP выводил имя файла, которое должно читать JS.Ответ от AJAX
Вот мой JQuery:
$(function(){
$('#photoimg').change(function(){
var formData = new FormData($('#img_form')[0]);
var wHeight = $(window).height();
// get height of browser
var wWidth = $(window).width();
// get width of browser
$('#loading').show();
$.ajax({
url: '../_process/calendar_upload.php?w='+ wWidth +'&h='+ wHeight +'',
//send browser height and width to scale temp image to fit to screen
type: 'POST',
success: function (resp) {
$('#loading').hide();
//write scaled image to popup
var fname = resp.imgname;
$("#cal_imageuploader").html("<img src='../_img/event_images/'"+ fname +" '/>");
//loads temp image into popup for cropping
$('#cal_imageuploader').bPopup();
//opens popup
//trigger cropping on photo
},
data: formData,
cache: false,
contentType: false,
processData: false
});
});
});
И PHP это время отвечал на:
<?php
$session_id = mysql_escape_string($_COOKIE['Foo']);
// User session id
$path = "../_img/event_images/";
$tmp_path = "../_img/tmp";
$wHeight = $_REQUEST['h'];
$wWidth = $_REQUEST['w'];
$valid_formats = array("jpg", "png", "gif", "bmp", "jpeg");
if (isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") {
$name = $_FILES['photoimg']['name'];
$size = $_FILES['photoimg']['size'];
if (strlen($name)) {
list($txt, $ext) = explode(".", $name);
if (in_array($ext, $valid_formats)) {
if ($size < (3024 * 3024)) {
// Image size max 3 MB
$hash = "49esd34h";
$randstring = rand(5, 10);
$actual_image_name = $session_id."_".sha1($name . $hash . $randstring) . "." . $ext;
$tmp = $_FILES['photoimg']['tmp_name'];
//tmp file code goes here
if (move_uploaded_file($tmp, $path . $actual_image_name)) {
$resp['imgname'] = $actual_image_name;
echo json_encode($resp);
} else
echo "failed";
} else
echo "Image too large...";
} else
echo "Invalid file format...";
} else
echo "Please select image..!";
exit;
}
?>
В настоящее время вар fname
не определена, и я не могу понять, почему. Есть идеи?
Конечно, вы должны проверить вашу консоль и вкладку сети и вы не видите ошибки в противном случае вы бы разместить его, не так ли? –
Да, проверенная консоль, и единственное, что я вижу, это то, что var fname не определено. Это то, что меня беспокоит. –
попробуйте 'console.log (resp)' и посмотрите, какой ответ вы получите с сервера. – Spokey