ホームページ > PHPフレームワーク > ThinkPHP > thinkPHP が ajax を使用して画像を非同期にアップロードし、表示および削除する方法の詳細な説明

thinkPHP が ajax を使用して画像を非同期にアップロードし、表示および削除する方法の詳細な説明

藏色散人
リリース: 2021-03-23 13:43:30
転載
2510 人が閲覧しました

次のチュートリアル コラムでは、thinkPHP が ajax を使用して画像を非同期にアップロードし、表示および削除する方法を紹介します。 thinkPHP は ajax を使用して画像を非同期にアップロードし、それらを表示および削除します

最近 tp5 を学習する過程で、プロジェクトに投稿機能があります。テーマの写真を選択します。

# 元のファイルのアップロード処理を使用すると、アップロードされた画像を元の js ステートメントを通じてリアルタイムに表示できますが、これには多くの互換性の問題が伴います。 ajax テクノロジーを使用して、互換性の問題なく選択した画像を選択的に削除する機能を実現します。

thinkPHP が ajax を使用して画像を非同期にアップロードし、表示および削除する方法の詳細な説明

フォーム ファイル フォーム:

ログイン後にコピー
    主题图片:                   图片上传               
Ajax リクエストを送信する必要がある場合、当然ながらフォームではニーズを満たすことができないため、クリック イベントをフォームに関連付ける必要があります。 Ajax リクエストを作成し、画像を選択するのに役立ちます。
画像のアップロード ボタンをクリックすると、Ajax アップロードを実装するために画像の選択がトリガーされます。

JavaScript コード:

<script></script>
<script>
    function upimg(obj)
    {
        if( obj.value == "" ) {
            return;
        }
        var formdata = new FormData();
        //<input type="file" name="img" value="" />
        formdata.append("img" , $(obj)[0].files[0]);//获取文件法二
        $.ajax({
            type : &#39;post&#39;,
            url : &#39;/home/note/upimg&#39;, //接口
            data : formdata,
            cache : false,
            processData : false, // 不处理发送的数据,因为data值是Formdata对象,不需要对数据做处理
            contentType : false, // 不设置Content-type请求头
            success : function(response){
                console.log(response);
                var html = &#39;<p style="position: relative;margin-right: 20px;margin-bottom: 15px;width: 132px;display: inline-block;border: 1px solid #CCC;background:#EEE;">&#39;
                        +&#39;<span style="display: block;width: 120px;height: 80px;border: 1px solid #F2F1F0;margin: 5px;overflow: hidden;">&#39;
                        +&#39;<img  src="&#39;+response+&#39;"   style="max-width:90%" / alt="thinkPHP が ajax を使用して画像を非同期にアップロードし、表示および削除する方法の詳細な説明" >&#39;
                        +&#39;&#39;
                        +&#39;<input type="hidden" name="imgs[]" value="&#39;+response+&#39;" />&#39;
                        +&#39;<a onclick="delImg(this);" style="z-index: 10;display: block;top: -8px;cursor:pointer;right: -8px;position:absolute;width: 20px;height: 20px;background: #CCC;border-radius:100%;text-align:center;line-height: 20px;border: 1px solid #C1C1C1;color: #555;">X&#39;
                        +&#39;&#39;;

                $(&#39;#img-list-box&#39;).append(html);
            },
            error : function(){ }
        });
    }

    function delImg(obj)
    {
        $(obj).parent(&#39;p&#39;).remove();
    }
</script>
ログイン後にコピー

画像をクリックして選択すると、画像が処理用のサーバー。 php インターフェース ファイル:

    public function upimg()
    {
        //验证
        $file = request()->file('img');
        // 移动到框架应用根目录/public/uploads/ 目录下
        if($file){
            $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
            if($info){
                // 成功上传后 获取上传信息
                $img_src = '/uploads/'.$info->getSaveName();
                echo $img_src; //返回ajax请求
            }else{
                // 上传失败获取错误信息
                $this->error($file->getError());
            }
        }
    }
ログイン後にコピー
改善されたレンダリング:


以上がthinkPHP が ajax を使用して画像を非同期にアップロードし、表示および削除する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート