如何在php

时间:2016-09-17 09:04:46

标签: php jquery html css

我想在存在文件上传按钮的同一页面上显示上传的图像/文档的缩略图。 请帮助我,我是一名业余编码员,谢谢。

4 个答案:

答案 0 :(得分:1)

首先,您必须了解PDF,Word文档,MP3,视频等文档的缩略图都没有。这意味着您必须自己创建这些缩略图。

其次,要为任何上传的图像添加缩略图,您需要显式创建同一图像的已调整大小的缩略图版本。否则,将上传的文件移动到服务器只会移动原始文件:原样而不调整其大小。

如果您没有使用任何框架,或者您无法访问CodeBase中的图像处理库,则可能需要查看:WideImage。通过Composer try this Link在项目中包含WideImage。这可以帮助您调整上传文件的大小。还有其他人;你可能只需要自己做一点研究......

最后;如果您想要即时反馈(上传文档的缩略图显示),您可能不得不求助于AJAX。这具有执行异步操作的优点,这意味着:您可以上传文档并在上传完成后;缩略图会立即显示在您的页面上。

如果您对AJAX了解不多,那么您可能需要访问此AJAX Tutorial Website

答案 1 :(得分:1)

嗯,这会有所帮助。

define ("MAX_SIZE","4000");
function getExtension($str) {
     $i = strrpos($str,".");
     if (!$i) { return ""; }
     $l = strlen($str) - $i;
     $ext = substr($str,$i+1,$l);
     return $ext;
  }

 $errors=0;


$image =$_FILES["upload_field_name"]["name"];
$uploadedfile = $_FILES['upload_field_name']['tmp_name'];


if ($image) 
{

    $filename = stripslashes($_FILES['upload_field_name']['name']);

    $extension = getExtension($filename);
    $extension = strtolower($extension);


   if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) 
    {

        echo"<script>alert('Unknown Image extension');</script>";
        die;
        $errors=1;
    }
    else
    {

   $size=filesize($_FILES['upload_field_name']['tmp_name']);


  if ($size > MAX_SIZE*1024)
  {
    echo"<script>alert('You have exceeded the size limit!');</script>";
  die;
  $errors=1;
}


 if($extension=="jpg" || $extension=="jpeg" )
{
  $uploadedfile = $_FILES['upload_field_name']['tmp_name'];
  $src = imagecreatefromjpeg($uploadedfile);

}
    else if($extension=="png")
    {
            $uploadedfile = $_FILES['upload_field_name']['tmp_name'];
             $src = imagecreatefrompng($uploadedfile);

     }
  else 
 {
 $src = imagecreatefromgif($uploadedfile);
  }



 list($width,$height)=getimagesize($uploadedfile);


 $newwidth=60;
 $newheight=($height/$width)*$newwidth;
 $tmp=imagecreatetruecolor($newwidth,$newheight);


 $newwidth1=30;
 $newheight1=($height/$width)*$newwidth1;
 $tmp1=imagecreatetruecolor($newwidth1,$newheight1);

 imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);

                  imagecopyresampled($tmp1,$src,0,0,0,0,$newwidth1,$newheight1,$width,$height);
    $obj = mysql_fetch_object(mysql_query("SELECT MAX(id) as kk FROM your_table_name"));
    $i = $obj->kk;
    $i = $i+1;
    $newname = 'dp'.$i.'.jpg';
   rename($_FILES['upload_field_name']['name'], $newname);


   $filename = "folder_name/".$newname;

   $filename1 = "folder_name/small".$newname;



   imagejpeg($tmp,$filename,100);

    imagejpeg($tmp1,$filename1,100);

    imagedestroy($src);
    imagedestroy($tmp);
    imagedestroy($tmp1);
    }}        

玩得开心。

答案 2 :(得分:1)

jQUERY CODE:

$(function() {
    $("#uploadFile").on("change", function()
    {
        var files = !!this.files ? this.files : [];
        if (!files.length || !window.FileReader) return; // no file selected, or no FileReader support

        if (/^image/.test( files[0].type)){ // only image file
            var reader = new FileReader(); // instance of the FileReader
            reader.readAsDataURL(files[0]); // read the local file

            reader.onloadend = function(){ // set image data as background of div
                $("#imagePreview").css("background-image", "url("+this.result+")");
            }
        }
    });
});

HTML CODE

<div id="imagePreview"></div>
<input id="uploadFile" type="file" name="image" class="img" />

CSS STYLE:

    <style>
      #imagePreview {
        width: 180px;
        height: 180px;
        background-position: center center;
        background-size: cover;
        -webkit-box-shadow: 0 0 1px 1px rgba(0, 0, 0, .3);
        display: inline-block;
}
</style>

答案 3 :(得分:0)

的jQuery

<script type="text/javascript">
$(function() {
    $("#uploadFile").on("change", function()
    {
        var files = !!this.files ? this.files : [];
        if (!files.length || !window.FileReader) return; // no file selected, or no FileReader support

        if (/^image/.test( files[0].type)){ // only image file
            var reader = new FileReader(); // instance of the FileReader
            reader.readAsDataURL(files[0]); // read the local file

            reader.onloadend = function(){ // set image data as background of div
                $("#imagePreview").css("background-image", "url("+this.result+")");
            }
        }
    });
});
</script>

以上jQuery处理文件上传字段的onChange事件,并在给出div的背景中添加图像。

HTML:

<div id="imagePreview"></div>
<input id="uploadFile" type="file" name="image" class="img" />

用于我们预览缩略图的图像div的CSS: CSS

<style>
#imagePreview {
    width: 180px;
    height: 180px;
    background-position: center center;
    background-size: cover;
    -webkit-box-shadow: 0 0 1px 1px rgba(0, 0, 0, .3);
    display: inline-block;
}
</style>

这就是全部: