1. 程式人生 > >上傳圖片時,需注意事項

上傳圖片時,需注意事項

   /**
     * 後臺上傳圖片
     * type 1 為小程式圖片
     */
    public function actionAdd(){
        if($_FILES  && $_FILES["image"]['name']){
            $request = Yii::$app->request;
            $root = '/mnt/tmpfile/static/';
            $source_name = $_FILES["image"]['name'];
            $image_ext  = explode('.',$source_name);
            if($request->post('type',0) == 1){
                //儲存的目錄
                $path = $root.'app/'.date('Ymd');
            }else{
                $dir_name = $request->post('dir_name',date('Ymd'));
                $path = $root.$dir_name;
            }
            if(!is_dir($path)){
                mkdir($path,0777,true);
            }
            $file_name = date('YmdHis').'.'.$image_ext[1];
            $flag = move_uploaded_file($_FILES["image"]['tmp_name'],$path.'/'.$file_name);
            if($flag){
                $img_dir =str_replace('/mnt/tmpfile',$this->host,$path);
                Yii::$app->db->createCommand()->insert($this->table_name,[
                    'name'=>$request->post('name',''),
                    'type'=>$request->post('type',1),
                    'url_big'=>$img_dir.'/'.$file_name,
                    'add_time'=>time(),
                    'source_name'=>$source_name
                ])->execute();
                $this->redirect(Url::to(['index']));
            }else{
                throw new Exception('上傳失敗~');
            }
        }
        return $this->render('add');
    }
    /**
     * 刪除
     * @param $id
     * @return bool or string
     */
    public function actionDel($id){
        $id = Yii::$app->request->get('id',0);
        if(!$id){
            echo  json_encode(['status'=>0,'message'=>'無該資料']);exit;
        }
        $mess = ['status'=>0,'message'=>'刪除失敗~'];
        $curInfo = Yii::$app->db->createCommand("select * from ".$this->table_name.' where id ='.$id)->queryOne();
        $image = str_replace($this->host,'/mnt/tmpfile',$curInfo['url_big']);
        $res = unlink($image);//注意,刪除的連結格式/mnt/tmpfile/20160503344/tete.png
        if($res){
             $flag = Yii::$app->db->createCommand()->delete($this->table_name,['id'=>$id])->execute();
            if($flag){
                $mess = ['status'=>1,'message'=>'刪除成功~'];
            }
        }
        echo  json_encode($mess);exit;
    }

<!-- 引入js-->
<script src="/js/bootstrap-fileinput.js"></script>
<!-- 引入css -->
<style>
    .btn-file {
        position: relative;
        overflow: hidden;
        vertical-align: middle;
    }
    .btn-file > input {
        position: absolute;
        top: 0;
        right: 0;
        width: 100%;
        height: 100%;
        margin: 0;
        font-size: 23px;
        cursor: pointer;
        filter: alpha(opacity=0);
        opacity: 0;

        direction: ltr;
    }
    .fileinput {
        display: inline-block;
        margin-bottom: 9px;
    }
    .fileinput .form-control {
        display: inline-block;
        padding-top: 7px;
        padding-bottom: 5px;
        margin-bottom: 0;
        vertical-align: middle;
        cursor: text;
    }
    .fileinput .thumbnail {
        display: inline-block;
        margin-bottom: 5px;
        overflow: hidden;
        text-align: center;
        vertical-align: middle;
    }
    .fileinput .thumbnail > img {
        max-height: 100%;
    }
    .fileinput .btn {
        vertical-align: middle;
    }
    .fileinput-exists .fileinput-new,
    .fileinput-new .fileinput-exists {
        display: none;
    }
    .fileinput-inline .fileinput-controls {
        display: inline;
    }
    .fileinput-filename {
        display: inline-block;
        overflow: hidden;
        vertical-align: middle;
    }
    .form-control .fileinput-filename {
        vertical-align: bottom;
    }
    .fileinput.input-group {
        display: table;
    }
    .fileinput.input-group > * {
        position: relative;
        z-index: 2;
    }
    .fileinput.input-group > .btn-file {
        z-index: 1;
    }
    .fileinput-new.input-group .btn-file,
    .fileinput-new .input-group .btn-file {
        border-radius: 0 4px 4px 0;
    }
    .fileinput-new.input-group .btn-file.btn-xs,
    .fileinput-new .input-group .btn-file.btn-xs,
    .fileinput-new.input-group .btn-file.btn-sm,
    .fileinput-new .input-group .btn-file.btn-sm {
        border-radius: 0 3px 3px 0;
    }
    .fileinput-new.input-group .btn-file.btn-lg,
    .fileinput-new .input-group .btn-file.btn-lg {
        border-radius: 0 6px 6px 0;
    }
    .form-group.has-warning .fileinput .fileinput-preview {
        color: #8a6d3b;
    }
    .form-group.has-warning .fileinput .thumbnail {
        border-color: #faebcc;
    }
    .form-group.has-error .fileinput .fileinput-preview {
        color: #a94442;
    }
    .form-group.has-error .fileinput .thumbnail {
        border-color: #ebccd1;
    }
    .form-group.has-success .fileinput .fileinput-preview {
        color: #3c763d;
    }
    .form-group.has-success .fileinput .thumbnail {
        border-color: #d6e9c6;
    }
    .input-group-addon:not(:first-child) {
        border-left: 0;
    }
</style>
<form class="form-horizontal" role="form" method="post" action="<?=Url::to(['add'])?>"  enctype='multipart/form-data' >
    <ul class="breadcrumb">
        <li><a href="#">首頁</a></li>
        <li><a href="#">系統設定</a></li>
        <li class="active">上傳圖片</li>
        <a href="<?=Url::to(['index'])?>" class="btn btn-primary btn-sm pull-right">返回</a>
    </ul>

    <div class="form-group">
        <label for="name" class="col-sm-2 control-label">名稱</label>
        <div class="col-sm-5">
            <input type="text" class="form-control" name="name" placeholder="自定義名稱">
        </div>
    </div>
    <div class="form-group">
        <label for="name" class="col-sm-2 control-label">分類</label>
        <div class="col-sm-5">
            <select name="type"  class="form-control">
                <option value="0">請選擇..</option>
                <option value="1">小程式</option>
                <option value="2">其他</option>
            </select>
        </div>
    </div>
    <div class="form-group " style="display:none;"  id="dir_name" >
        <div class="col-sm-offset-2 col-sm-10">儲存的目錄:
            <input type="text" name="dir_name" value="">
        </div>
    </div>
    <div class="form-group" id="uploadForm" enctype="multipart/form-data">
        <div class="col-sm-offset-2 col-sm-10">
            <div class="h4">圖片預覽</div>
            <div class="fileinput fileinput-new" data-provides="fileinput" id="exampleInputUpload">
                <div class="fileinput-new thumbnail" style="width: 200px;height: auto;max-height:150px;">
                    <img id="picImg" style="width: 100%;height: auto;max-height: 140px;" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTQwIiBoZWlnaHQ9IjE0MCIgdmlld0JveD0iMCAwIDE0MCAxNDAiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjwhLS0KU291cmNlIFVSTDogaG9sZGVyLmpzLzE0MHgxNDAKQ3JlYXRlZCB3aXRoIEhvbGRlci5qcyAyLjYuMC4KTGVhcm4gbW9yZSBhdCBodHRwOi8vaG9sZGVyanMuY29tCihjKSAyMDEyLTIwMTUgSXZhbiBNYWxvcGluc2t5IC0gaHR0cDovL2ltc2t5LmNvCi0tPjxkZWZzPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbI2hvbGRlcl8xNWViYzM4ZTYwNSB0ZXh0IHsgZmlsbDojQUFBQUFBO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1mYW1pbHk6QXJpYWwsIEhlbHZldGljYSwgT3BlbiBTYW5zLCBzYW5zLXNlcmlmLCBtb25vc3BhY2U7Zm9udC1zaXplOjEwcHQgfSBdXT48L3N0eWxlPjwvZGVmcz48ZyBpZD0iaG9sZGVyXzE1ZWJjMzhlNjA1Ij48cmVjdCB3aWR0aD0iMTQwIiBoZWlnaHQ9IjE0MCIgZmlsbD0iI0VFRUVFRSIvPjxnPjx0ZXh0IHg9IjQ1IiB5PSI3NC44Ij4xNDB4MTQwPC90ZXh0PjwvZz48L2c+PC9zdmc+" alt="">
                </div>
                <div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;"></div>
                <div>
                        <span class="btn btn-primary btn-file">
                            <span class="fileinput-new">選擇檔案</span>
                            <span class="fileinput-exists">換一張</span>
                            <input type="file" name="image" id="picID" accept="image/gif,image/jpeg,image/x-png">
                        </span>
                    <a href="javascript:;" class="btn btn-warning fileinput-exists" data-dismiss="fileinput">移除</a>
                </div>
            </div>
        </div>
    </div>

    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <button type="submit"  class="btn btn-success">提交</button>
        </div>
    </div>
</form>

<script>
    $(".btn-success").click(function () {
        var name =  $('input[name="name"]').val();
        if(name =='' || name == undefined){
            alert('名稱不能為空..')
            return false;
        }
        $('form[role="form"]').submit();
    })
    $('select[name="type"]').change(function () {
        var value = $('select[name="type"] option:selected').val();
        if(value==2){
            $('#dir_name').attr('style','display:block;');
        }else{
            $('#dir_name').attr('style','display:none;');
        }
    })
</script>


相關推薦

圖片注意事項

/** * 後臺上傳圖片 * type 1 為小程式圖片 */ public function actionAdd(){ if($_FILES && $_FILES["image"]['name'

Ueditor在圖片服務器返回502 bad gateway的填坑記

ueditor 502 iconv故事發生在2017.10.26下午,環宇同學跟我反應說在測試青羊雙創項目的後臺管理,發現在編輯園區信息時,想要上傳一堆圖片,用編輯器嘗試上傳圖片時,卻報了“上傳失敗,請重試”的錯,類似下圖:納尼?我...... 多麽正常的編輯器,我本地跑的好好的,我趕緊去試了一下,果然報錯,

在網路使用圖片應當注意什麼?

一圖勝千言,圖片一直是網站資訊、商業宣傳中吸引使用者的重要元素。自媒體時代,網路圖片的低創作門檻隨之帶來了越來越多的侵權問題。我們一般釋出在網站、公眾號或其他對外宣傳資料上的文章都會配有圖片,但是由於釋出的圖片比較多不可能都自主設計、自主拍攝,難免會通過各種渠道“盜圖”,這樣會大大增加我們侵

vue圖片console.log()圖片資訊遇到的坑

用vue開發專案時,有個上傳專案的功能 <input @change="uploadImages($event)" type="file" accept="image/jpeg,image/x-png,image/gif" id="" value="" />

java web圖片顯示圖片

js指令碼<script>    function setImagePreview() {        var docObj = document.getElementById("doc");        var imgObjPreview = documen

圖片在頁面進行預覽

前端頁面: <div class="container"> <form class="form-horizontal" enctype="multipart/for

在使用layui upload模組圖片出現了request entity too large 413

使用layui upload模組上傳圖片時,報瞭如下錯誤: 剛開始懷疑是不是因為使用了jfinal 圖片上傳大小作了限制,初步檢查後,不是這個原因(因為圖片的大小沒有超過上傳的最大值大小)。 F12開啟瀏覽器控制檯,發現呼叫上傳介面的時候報瞭如下錯req

jQuery實現圖片顯示圖片預覽效果

程式碼如下<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>

使用json方式圖片發現成功後變成下載了json... 或者無法解析到返回的結果集!!!

問題描述:如題 PS:使用Struts框架!!! 解決方案: <result name="typename" type="json"><param name="noCache">true</param><param name="

圖片button按鈕隱藏用做好的樣式

jsp:<div class="input-box"><span>主題首頁</span><div class="img-box"><img class="img-icon" src="${ctx}/${subject.p

UEditor圖片展示的順序與選擇順序不一致(多圖)

UEditor多圖上傳時,由於後臺上傳介面返回的時間不同,會造成顯示上傳後的圖片與選擇時的圖片順序不一致的問題。 舉個栗子: 多圖上傳時,先後選擇了a.png和b.png,其中a.png大小為900k,b.png大小為5k,當上傳成功後點擊確認按鈕, 發現b

圖片等比縮放的一個小小算法

lba sim image 委托 fromfile tps 獲取 head 引用 protected void Button1_Click(object sender, EventArgs e) { int width = 300, h

使用Ueditor點擊圖片顯示延遲的問題

題解 項目 通過 多圖上傳 data- 結合 min input 答案 最近在做一個項目,需要用到Ueditor,但是在點擊上傳圖片的時候,總是隔了4-5秒才顯示文件框 查了一些資料,最後發現,只需在 修改:(1) dialog/images/image.js 把

圖片預覽

undefined kit 上傳 accep out 場景 用戶修改 firefox define 簡述     本文的使用場景主要是用戶修改頭像,選擇本地圖片後在頁面上面顯示選擇的圖片。使用jQuery+js實現。 1.首先,頁面上有一個input[type=‘f

圖片壓縮圖片 - 前端(canvas)做法

als ase java use reac ice efi 壓縮圖片 basic HTML前端代碼: <?php $this->layout(‘head‘); ?> <?php $this->layout(‘sidebar‘); ?>

圖片壓縮圖片 - 後端做法

rep create 路徑 creat 彩色 images rom sim 不同 /** * 函數:調整圖片尺寸或生成縮略圖 v 1.1 * @param $Image 需要調整的圖片(含路徑) * @param $Dw 調整時最大寬

檔案下載在form表單中設定屬性enctype=“multipart/form-data”的情況下如何獲取表單提交的值?

一、問題描述 檔案上傳下載時,在form表單中設定屬性enctype=“multipart/form-data”的情況下,如何獲取表單提交的有關使用者資訊的值?(比如:textfield、radio等屬性中的值) 二、解決方法 1、情況一:沒有對user物件進行封裝 方法:

springMVC MultipartFile 圖片修改圖片大小

1.引言 伺服器配置比較低,開啟網站時載入1MB+的圖片 速度很慢,影響客戶體驗。所以從網上找了java修改圖片大小的方法,這裡記錄一下 以備以後不時之需。修改之後的圖片大小在100kb左右 2.程式碼 @RequestMapping("/admin/fileUpload") @R

部分vivo和oppo手機使用圖片功能可能會出現退出webview的現象(回退到app的入口頁面)

在公司的app裡面嵌入了一個h5頁面,h5頁面有個使用圖片上傳功能,上傳圖片出現閃退的現象  問題描述: vivo手機,在app內的wap頁面使用上傳圖片的功能,在選擇好圖片點選確認按鈕後,出現退出整個webview,回退到app該wap頁面的入口頁面,且app自動重新整理了該入口頁面

Java之~ 圖片壓縮圖片壓縮圖片旋轉方法工具類

package com.javajy.util; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Point; import jav