我想上传图像并将其保存在uploads文件夹中,而不刷新页面。此外,我也想在div的屏幕上显示上传的图像。但是,当我运行代码时,当我尝试上传图像时,文本继续显示“ Image Uploading ...”,并且从未完成实际的上传。因此,图像永远不会显示在页面上。此外,我在将图片保存到上载文件夹时遇到了麻烦,有人可以向我指出正确的方向吗?谢谢!
更新:每次我尝试上传图像时,Ajax POST都会出错。实际上,POST请求甚至可能无法到达我的upload.php文件。当请求实际到达upload.php时,我试图提醒自己,但是什么也没有打印出来。可能是什么原因造成的?
更新#2:我提供了文件布局的图片。我在privatecreate.blade.php中有HTML和Javascript,在upload.php中有Javascript。我想将图像保存在上载文件夹中。
更新#3:我打印出ajax错误,它是“未指定输入文件”
请和我所有人一起忍受。这是我绝对第一次使用php和sql,我正在努力学习。
HTML:
<div class="container" style="width:700px;">
<br />
<label>Select Image</label>
<input type="file" name="file" id="file" />
<br />
<span id="uploaded_image"></span>
</div>
Javascript:
$(document).ready(function(){
$(document).on('change', '#file', function(){
var name = document.getElementById("file").files[0].name;
var form_data = new FormData();
var ext = name.split('.').pop().toLowerCase();
if(jQuery.inArray(ext, ['gif','png','jpg','jpeg']) == -1)
{
alert("Invalid Image File");
}
else{
var oFReader = new FileReader();
oFReader.readAsDataURL(document.getElementById("file").files[0]);
var f = document.getElementById("file").files[0];
var fsize = f.size||f.fileSize;
if(fsize > 2000000)
{
alert("Image File Size is very big");
}
else
{
form_data.append("file", document.getElementById('file').files[0]);
$.ajax({
url:"upload.php",
method:"POST",
data: form_data,
contentType: false,
cache: false,
processData: false,
beforeSend:function(){
$('#uploaded_image').html("<label class='text-success'>Image Uploading...</label>");
},
success:function(data)
{
$('#uploaded_image').html(data);
}
,error: function(ts)
{
alert("error:" + ts.responseText);
}
});
}
}
});
});
PHP(upload.php):
<?php
//upload.php
$message = "Running Upload.php";
echo "<script type='text/javascript'>alert('$message');</script>";
if($_FILES["file"]["name"] != '')
{
$test = explode('.', $_FILES["file"]["name"]);
$ext = end($test);
$name = rand(100, 999) . '.' . $ext;
$location = 'uploads/' . $name;
move_uploaded_file($_FILES["file"]["tmp_name"], $location);
echo '<img src="'.$location.'" height="150" width="225" class="img-thumbnail" />';
}
?>
答案 0 :(得分:0)
<?php
//Change your location path
if($_FILES["file"]["name"] != '')
{
$test = explode('.', $_FILES["file"]["name"]);
$ext = end($test);
$name = rand(100, 999) . '.' . $ext;
$location = 'upload/' . $name; // change here & enjoy
move_uploaded_file($_FILES["file"]["tmp_name"], $location);
echo '<img src="'.$location.'" height="150" width="225" class="img-thumbnail" />';
}
?>