나는 이미지를 업로드 한 다음 동일한 페이지 (#AJAX)에 이미지의 미리보기 미리보기를 표시해야합니다. 누군가 포인터를 제공 할 수 있습니까?업로드시 이미지 미리보기
1
A
답변
0
확실히. 아마 당신이 업로드하고있는 서버는 이미지를 어딘가에 저장하고 URL을 통해 사용할 수있게 할 것입니다. 그렇다면 업로드 요청에 대한 응답의 일부로 서버가 이미지의 URL을 반환 한 다음 이미지에 가리키는 문서에 새 <img>
태그를 추가하는 JavaScript를 사용하면됩니다. 서버에.
대역폭을 절약하려면 ImageMagick과 같은 방법을 사용하여 이미지의 크기를 적절한 축소판 크기로 조정하고 전체 크기 이미지의 URL 대신 축소판의 URL을 돌려 보내야 할 수도 있습니다.
2
index.html을
<script>
function ajaxFileUpload(upload_field)
{
// Checking file type
var re_text = /\.jpg|\.gif|\.jpeg/i;
var filename = upload_field.value;
if (filename.search(re_text) == -1) {
alert("File should be either jpg or gif or jpeg");
upload_field.form.reset();
return false;
}
document.getElementById('picture_preview').innerHTML = '<div><img src="images/progressbar.gif" border="0" /></div>';
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;
}
</script>
<!-- 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" id="picture" onchange="return ajaxFileUpload(this);" />
<span id="picture_error"></span>
<div id="picture_preview"></div>
</div>
</form>
업로드-picture.php
<?php
$upload_dir = 'upload/'; // Directory for file storing
$preview_url = 'http://localhost/image_upload/upload/';
$filename= '';
$result = 'ERROR';
$result_msg = '';
$allowed_image = array ('image/gif', 'image/jpeg', 'image/jpg', 'image/pjpeg','image/png');
define('PICTURE_SIZE_ALLOWED', 2242880); // bytes
if (isset($_FILES['picture'])) // file was send from browser
{
if ($_FILES['picture']['error'] == UPLOAD_ERR_OK) // no error
{
if (in_array($_FILES['picture']['type'], $allowed_image)) {
if(filesize($_FILES['picture']['tmp_name']) <= PICTURE_SIZE_ALLOWED) // bytes
{
$filename = $_FILES['picture']['name'];
move_uploaded_file($_FILES['picture']['tmp_name'], $upload_dir.$filename);
//phpclamav clamscan for scanning viruses
//passthru('clamscan -d /var/lib/clamav --no-summary '.$upload_dir.$filename, $virus_msg); //scan virus
$virus_msg = 'OK'; //assume clamav returing OK.
if ($virus_msg != 'OK') {
unlink($upload_dir.$filename);
$result_msg = $filename." : ".FILE_VIRUS_AFFECTED;
$result_msg = '<font color=red>'.$result_msg.'</font>';
$filename = '';
}else {
// main action -- move uploaded file to $upload_dir
$result = 'OK';
}
}else {
$filesize = filesize($_FILES['picture']['tmp_name']);// or $_FILES['picture']['size']
$filetype = $_FILES['picture']['type'];
$result_msg = PICTURE_SIZE;
}
}else {
$result_msg = SELECT_IMAGE;
}
}
elseif ($_FILES['picture']['error'] == UPLOAD_ERR_INI_SIZE)
$result_msg = 'The uploaded file exceeds the upload_max_filesize directive in php.ini';
else
$result_msg = 'Unknown error';
}
// This is a PHP code outputing Javascript code.
echo '<script language="JavaScript" type="text/javascript">'."\n";
echo 'var parDoc = window.parent.document;';
if ($result == 'OK') {
echo 'parDoc.getElementById("picture_error").innerHTML = "";';
}
else {
echo "parDoc.getElementById('picture_error').innerHTML = '".$result_msg."';";
}
if($filename != '') {
echo "parDoc.getElementById('picture_preview').innerHTML = '<img src=\'$preview_url$filename\' id=\'preview_picture_tag\' heigh=\'100\' width=\'100\' name=\'preview_picture_tag\' />';";
}
echo "\n".'</script>';
exit(); // do not go futher
?>
두 개의 폴더
images -- keep any loading image.
upload -- change permission.
이
0에서 모든 파일을 넣어 확인image_upload
images
upload
index.html
upload-picture.php
관련 문제
- 1. 업로드시 이미지 워터 마킹
- 2. 이미지 미리보기 이미지 검색
- 3. 이미지 미리보기 이미지
- 4. 이미지 업로드시 $ _FILES 비어 있음
- 5. 미리보기 내의 이미지 확대
- 6. 미리보기 이미지 반올림 아이폰
- 7. PDF 미리보기 이미지
- 8. 목록 상자의 이미지 미리보기
- 9. 플렉스에서 이미지 미리보기
- 10. 전체 화면 이미지 미리보기
- 11. android : 목록보기 미리보기 이미지
- 12. 동영상 미리보기 이미지 검색
- 13. iPhone - 이미지 미리보기 클래스
- 14. jquery and php : 업로드시 이미지 최적화 필요
- 15. PHP를 통해 이미지 및 미리보기 이미지 업로드
- 16. 외부 컨트롤이있는 jcarousel ... 미리보기 이미지
- 17. 이미지 업로드 및 Jquery로 미리보기
- 18. HTML5 비디오 미리보기 이미지 만들기
- 19. PHP에서 AJAX를 사용하여 이미지 미리보기
- 20. Android 1.5의 미리보기 이미지 생성
- 21. 이미지 가져 오기 미리보기 jQuery
- 22. PHP 갤러리, 미리보기 이미지 목록
- 23. 확실한 자바 스크립트 이미지 미리보기
- 24. iPhone : 비디오 미리보기 이미지 만들기
- 25. 퀵타임 (영화) 파일에서 미리보기 이미지 찍기
- 26. jquery/js 이미지 상자 미리보기 효과
- 27. PHP 이미지 업로드 (파일 선택시 미리보기 포함)
- 28. django 및 nginx로 주문형 미리보기 이미지 생성
- 29. .NET 4 웹 사이트 미리보기 이미지 생성
- 30. Android 카메라 미리보기 바이트 [] ~ Java 이미지
이미지를 업로드하기 위해 양식을 제출 (페이지 새로 고침) 할 필요가 없습니까? 아니면 코드가 작동하는 방식으로 무언가를 놓치고 있습니까? – Ben
저에게는 까다로운 부분처럼 들립니다. 익숙하지 않은 메신저,하지만이 방법이 있다고 생각합니다. http://www.openjs.com/articles/ajax/ajax_file_upload/ –