php 圖片上傳並預覽效果本文章是一款圖片上傳代碼,他可以把上傳到服務器的圖片在進行預覽修改,如果是你想的你就可以保存了,不是可以刪除再重新上傳哦。
php教程 圖片上傳並預覽效果
本文章是一款圖片上傳代碼,他可以把上傳到服務器的圖片在進行預覽修改,如果是你想的你就可以保存了,不是可以刪除再重新上傳哦。
*/
if(!isset($_session))session_start();
/**2010-6-22
* $data 數組類型 包含以下變量
-------------------------------
* $sub_type submit類型(upload:上傳按鈕 delete:刪除按鈕),默認upload
* $file 通過表單獲取的$_files['filename']數組
* $img_tag_id 預覽圖片的<img>的id值
* $img_dir 上傳圖片的目錄
* $max_file_size 單位m(兆),默認:1m
* $type_array 允許的上傳的圖片類型(默認:image/pjpeg、image/jpeg、image/gif)
**/
function upload($data){
if(!$data['file']){
echo '<script>alert("file不能為空!");</script>';exit;
}
if(!$data['img_tag_id']){
echo '<script>alert("預覽圖片標簽id不能為空!");</script>';exit;
}
if(!$data['img_dir']){
echo '<script>alert("圖片上傳目錄不能為空!");</script>';exit;
}
if(!isset($data['max_file_size'])){
$data['max_file_size'] = 1024 * 1024;
}else{
$data['max_file_size'] = $data['max_file_size'] * 1024 * 1024;
}
if(!isset($data['type_array'])){
$data['type_array'] = array('image/pjpeg', 'image/jpeg', 'image/gif');
}
if(!isset($data['sub_type'])){
$data['sub_type'] = 'upload';
}
$imgpath = '';
if(isset($data['sub_type']) && $data['sub_type'] == 'delete'){
if(isset($_session['name']) && $_session['name']){
if(is_file($_session['imgpath'])){
$b = unlink($_session['imgpath']);
}
unset($_session['name'], $_session['imgpath']);
if(!isset($_session['name'])){
echo '<script>alert("刪除成功!");</script>';
echo '<script>parent.document.getelementbyid("'.$data['img_tag_id'].'").style.display = "none";</script>';
}else{
echo '<script>alert("刪除失敗!");</script>';
}
}else{
echo '<script>alert("沒有稿件!");</script>';
}exit;
}
if(isset($_session['imgpath']) && $_session['imgpath']){
echo '<script>alert("稿件已經存在,要想重新上傳請刪除原來的稿件!");</script>';exit;
}
if(!in_array($data['file']['type'], $data['type_array'])){
echo '<script>alert("稿件類型不匹配,請上傳.jpg、.gif和.png格式的圖片!");</script>';exit;
}
if($data['file']['size'] > $data['max_file_size']){
echo '<script>alert("您上傳的稿件過大,請選擇2m以下的圖片上傳!");</script>';exit;
}
if(!is_dir($data['img_dir'])){
@mkdir($data['img_dir'], 0777, true);
}
$imgpath = $data['img_dir'].'/'.date('his', time()).rand(100, 999).$data['file']['name'];
$isupload = move_uploaded_file($data['file']['tmp_name'], $imgpath);
if(!$isupload){
echo '<script>alert("稿件上傳失敗,請嘗試重新上傳!");</script>';exit;
}else{
echo '<script>alert("稿件上傳成功!");</script>';
}
$_session['name'] = $data['file']['name'];
$_session['imgpath'] = $imgpath;
return $imgpath;
}
/*test_start*/
$sub_type = '';
if(isset($_post['submit_upload']))$sub_type = 'upload';
if(isset($_post['submit_delete']))$sub_type = 'delete';
if($sub_type){//echo '<script>alert("'.$sub_type.'");</script>';exit;
$data = array( 'sub_type' => $sub_type,
'file' => $_files['file'],
'img_tag_id' => 'picview',
'img_dir' => 'upload_img',
);
$imgpath = upload($data);
}else{
$imgpath = isset($_session['imgpath'])? $_session['imgpath']: '';
}
?>
<form action="ad.php" method="post" enctype="multipart/form-data" target="frame">
<input type="file" name="file" class="input">
<input type="submit" name="submit_upload" value="上 傳">
<input type="submit" name="submit_delete" value="刪 除">
<iframe id="frame" name="frame" width="0" height="0" marginwidth="0" frameborder="0" src="about:blank"></iframe>
</form>
<img id="picview" height="100" style="display:none;">
<script>
if("<?php echo $imgpath; ?>"){
parent.document.getelementbyid("picview").src = "<?php echo $imgpath; ?>";
parent.document.getelementbyid("picview").style.display = "block";
}
</script>