2017-04-13 252 views
1

我的代码似乎无法从桌面上拉取图片进行预览。我不知道是什么。所有这一切都是,给我看一张破碎的图像。这是代码。使用php和javascript创建图片上传器预览图片

的JavaScript

function ajaxFileUpload(upload_field) 
{ 
// Checking file type 
var re_text = /\.jpg|\.gif|\.jpeg|\.png|\.gif/i; 
var filename = upload_field.value; 
if (filename.search(re_text) == -1) { 
alert("File should be either jpg or gif or jpeg or png"); 
upload_field.form.reset(); 
return false; 
} 
document.getElementById('picture_preview').innerHTML = '<img src="" width="10%" border="0" />'; 
upload_field.form.action = 'upload-picture.php'; 
upload_field.form.target = 'upload_iframe'; 
upload_field.form.submit(); 
upload_field.form.action = ''; 
upload_field.form.target = ''; 
return true; 
} 

HTML

<!-- iframe used for ajax file upload--> 
<!-- debug: change it to style="display:block" --> 
<iframe name="upload_iframe" id="upload_iframe" style="display:none;"></iframe> 
<!-- iframe used for ajax file upload--> 

<form name="pictureForm" method="post" autocomplete="off" enctype="multipart/form-data"> 
<div> 
<span>Upload Picture :</span> 
<input type="file" name="picture" onclick="preview()" id="picture" onchange="return ajaxFileUpload(this);" /> 
<span id="picture_error"></span> 
<div id="picture_preview"></div> 
</div> 
</form> 
+0

浏览器显示一张损坏的图像,因为它无法找到您的图像。检查您的浏览器控制台,错误消息说什么? –

+0

它给了我一个“404(未找到)”的错误 – user2938948

回答

0

像这样的东西应该工作:

的Javascript

var input = document.getElementById('image_uploader'); 
var uploadedImage = document.getElementById('uploaded_image'); 

input.addEventListener('change', onImageInput); 

function onImageInput() 
{ 
    var imageFile = input.files[0]; 
    var reader = new FileReader(); 
    reader.addEventListener('loadend', onReaderComplete); 
    reader.readAsDataURL(imageFile); 
} 

function onReaderComplete(e) 
{ 
    uploadedImage.src = e.target.result; 
} 

HTML

<input type="file" id="image_uploader"/> 
<div id="picture_preview"><img id="uploaded_image"/></div> 

之后,您可以发送图像数据(src)到服务器与AJAX或其他类似的东西。

+0

关联的HTML将如何? – user2938948

+0

我修改了我的答案还包含必需的HTML。你几乎可以做任何事情,只要你在JS部分有一个'input'和一个'img'元素。 –