TP5 多图上传

最终样式最终样式

<div class="form-group">
                        <label class="col-sm-2 control-label">图片上传</label>
                        <div class="col-sm-8">
                            <div class="col-sm-12" style="padding-left:0px;">
                                <button type="button" class="btn btn-primary" onclick="addImg();">添加图片</button>
                            </div>

                            <div class="col-sm-12 imgKj"  style="padding-left:0px;">
                                <table>
                                    <tbody>
                                    {notempty name='data.content'}
                                    {foreach name="data.content" item="li" key="k"}
                                    <tr>
                                        <td>
                                            <div class="img_info">
                                                <img src="{$li.img}" id="up_{$k}">
                                                <input type="hidden" name="imgs[{$k}]" value="{$li.img}" />
                                                <input type="file" name="{$k}s" id="in_{$k}" onclick="preview(this)" accept="image/gif,image/jpeg,image/jpg,image/png">
                                            </div>
                                        </td>
                                        <td>

                                            <div class="input-group">
                                                <span class="input-group-btn"><button type="button" class="btn btn-white">链接</button></span>
                                                <input type="text" name="urls[{$k}]" value="{$li.url}" class="form-control" style="width:300px;" />
                                            </div>
                                            <div class="input-group m-b">
                                                <span class="input-group-btn"><button type="button" class="btn btn-white">排序</button></span>
                                                <input type="text" name="sorts[{$k}]" value="{$li.sort}" style="width:300px;" class="form-control">
                                            </div>
                                        </td>
                                        <td>
                                            <a href="javascript:void(0);" onclick="delImgKj(this);" style="margin-left:20px;" class="btn btn-danger btn-xs delete"><i class="fa fa-trash-o"></i> 删除</a>
                                        </td>
                                    </tr>
                                    {/foreach}
                                    {/notempty}
                                    </tbody>
                                </table>
                            </div>
                        </div>
                    </div>
                    <style type="text/css">
                        .img_info{width:104px;height:auto;overflow:hidden;position:relative;margin:0 10px 10px 0;float:left;}
                        .img_info img{width:100px;height:100px;border:1px solid #ccc;padding:1px;}
                        .img_info input{width:100px;height:100px;left:0;top:0;opacity:0;position:absolute;z-index:1;cursor:pointer;padding:0;margin:0;}
                        .img_info span{display:inline-block;width:100%;height:22px;line-height:22px;text-align:center;cursor:pointer;}
                    </style>
                    <script type="text/javascript">
                        function preview(self) {
                            $(self).unbind('change').change(function (event) {
                                var self = this;
                                var files = event.target.files || event.dataTransfer.files;
                                var formData = new FormData();
                                formData.append('imgFile', files[0]);
                                $(self).prev().prev().attr('src', '__PUBLIC__/img/loading.gif');
                                var ajax = new XMLHttpRequest();
                                ajax.open("POST", "{:url('Index/saveImg')}", true);
                                ajax.send(formData);
                                ajax.onreadystatechange = function () {
                                    $(self).prev().prev().attr('src', '__PUBLIC__/img/goods.jpg');
                                    if (ajax.readyState == 4) {
                                        if (ajax.status >= 200 && ajax.status < 300 || ajax.status == 304) {
                                            var data = JSON.parse(ajax.responseText);
                                            if (data.status == 'y') {
                                                $(self).prev().val(data.data.src);
                                                $(self).prev().prev().attr('src', data.data.src);
                                            } else {
                                                layer.msg(data.info);
                                            }
                                        }
                                    }
                                }
                            });
                        }
                        function addImg(){
                            var time=new Date().getTime();

                            var length=$('.imgKj .img_info').length;
                            if(length == 10){
                                layer.msg('最多添加10张图片!');return false;
                            }

                            var html = '<tr>';
                            html += '		<td>';
                            html += '			<div class="img_info">';
                            html += '				<img src="__PUBLIC__/img/goods.jpg">';
                            html += '				<input type="hidden" name="imgs[]"/>';
                            html += '				<input type="file" οnclick="preview(this)" accept="image/gif,image/jpeg,image/jpg,image/png">';
                            html += '			</div>';
                            html += '		</td>';
                            html += '		<td>';
                            html += '			<div class="input-group"><span class="input-group-btn"><button type="button" class="btn btn-white">链接</button></span><input type="text" name="urls[]" class="form-control" style="width:300px;margin-top: 0;"></div><div class="input-group m-b"><span class="input-group-btn"><button type="button" class="btn btn-white">排序</button></span><input type="number" max="9999999" name="sorts[]" style="width:300px;margin-top: 0;" class="form-control"></div>';
                            html += '		</td>';
                            html += '		<td>';
                            html += '			<a href="javascript:void(0);" οnclick="delImgKj(this);" class="btn btn-danger btn-xs delete" style="margin-left:20px;"><i class="fa fa-trash-o"></i> 删除</a>';
                            html += '		</td>';
                            html += '	</tr>';

                            $('.imgKj tbody').append(html);
                        }

                        function delImgKj(obj){
                            $(obj).parents('tr').remove();
                        }

                    </script>

-----------------------------

//轮播图
            $data['content'] = [];
            $sort = [];
            if (empty($data['imgs'][0])) {
                return $this->jsonError('请上传图片');
            }
            foreach ($data['imgs'] as $k=>$v) {
                if (!empty($v)) {
                    $data['content'][$k] = [
                        'img' => $v,
                        'url' => trim($data['urls'][$k]),
                        'sort' => intval($data['sorts'][$k])
                    ];
                    $sort[$k] = $data['sorts'][$k];
                }
            }
            array_multisort($sort, SORT_ASC, $data['content']);
            unset($data['imgs'], $data['urls'], $data['sorts']);
            $data['content'] = serialize($data['content']);
            dump($data['content']);die();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了实现基于AJAX的图片上传,你可以按照以下步骤进行操作: 1. 创建一个包含上传表单的HTML页面,其中包含一个文件输入字段和一个用于提交表单的按钮。例如: ```html <form id="uploadForm" enctype="multipart/form-data"> <input type="file" name="imageFile" id="imageFile"> <input type="submit" value="上传图片"> </form> ``` 2. 使用JavaScript编写一个处理表单提交的函数。该函数将使用AJAX将图片文件发送给服务器。例如: ```javascript function uploadImage() { var form = document.getElementById('uploadForm'); var formData = new FormData(form); var xhr = new XMLHttpRequest(); xhr.open('POST', 'upload.php', true); xhr.onload = function() { if (xhr.status === 200) { // 图片上传成功 console.log(xhr.responseText); } else { // 图片上传失败 console.error('图片上传失败'); } }; xhr.send(formData); } ``` 3. 创建一个服务器端脚本来处理图片上传。在这个例子中,我们使用PHP来处理上传请求。创建一个名为upload.php的文件,并在其中编写以下代码: ```php <?php $targetDir = 'uploads/'; // 指定图片上传目录 if (!empty($_FILES['imageFile'])) { $tempFile = $_FILES['imageFile']['tmp_name']; $targetFile = $targetDir . basename($_FILES['imageFile']['name']); // 将临时文件移动到目标位置 if (move_uploaded_file($tempFile, $targetFile)) { echo '图片上传成功'; } else { echo '图片上传失败'; } } ?> ``` 确保在服务器上创建一个名为uploads的文件夹,用于存储上传的图片。 4. 最后,在JavaScript代码中,将上传表单的提交事件绑定到处理函数上。例如: ```javascript document.getElementById('uploadForm').addEventListener('submit', function(e) { e.preventDefault(); uploadImage(); }); ``` 这样,当用户选择并提交图片文件时,表单将使用AJAX发送请求到服务器,并将图片文件上传到指定的目录中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值