精华内容
下载资源
问答
  • 最近是要做一个新闻...] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) # 没有这一句无法显示上传图片   这样的话在后台admin就可以添加了 如果成功就是这样,可以显示图片

    最近是要做一个新闻列表和新闻详情的接口,新闻的model有一个新闻内容字段是要用富文本字段的,就用了CKeditor富文本编辑器

    一、安装    django-ckeditor     5.6.1  

    二、添加到应用

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'app',
        'inform',
        'inventory',
        'order',

        'rest_framework',
        'ckeditor',  # 富文本编辑器
        'ckeditor_uploader', # 富文本编辑器上传图片模块
    ]

    三、在设置settings文件里面配置一下

    # 富文本编辑器ckeditor配置
    CKEDITOR_CONFIGS = {
        'default': {
            'toolbar': 'full',  # 工具条功能
            'height': 300,  # 编辑器高度
            # 'width': 300,  # 编辑器宽
        },
    }

    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    MEDIA_URL = '/media/'
    CKEDITOR_UPLOAD_PATH = 'upload/'
    CKEDITOR_IMAGE_BACKEND = 'pillow'

    四:定义模型类的时候使用富文本字段了

         # 富文本编辑字段
        from ckeditor_uploader.fields import RichTextUploadingField

        cover = models.ImageField("封面图片", upload_to="media", null=True, blank=True, default='')
        content = RichTextUploadingField(verbose_name='新闻内容')

    五:总路由urls里面需要配置下

    urlpatterns = [
        url(r'ckeditor/', include('ckeditor_uploader.urls')), #添加ckeditor的url到项目中
    ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)  # 没有这一句无法显示上传的图片

     

    这样的话在后台admin就可以添加了

    如果成功就是这样,可以显示图片:

    展开全文
  • 毕竟只是一个新手,解决这种复杂点的问题(相对而言),还是需要花费大量时间的,这篇文章花了两天的时间才实现的功能,现在就记录一下使用springboot怎么实现文件上传下载的。 我这里使用的是 springboot 2.0.3,...

    我先看一下《颈椎病康复指南》再给大家说怎么实现的这两个功能,毕竟只是一个新手,解决这种复杂点的问题(相对而言),还是需要花费大量时间的,这篇文章花了两天的时间才实现的功能,现在就记录一下使用springboot怎么实现文件上传下载的。

    我这里使用的是 springboot 2.0.3,不需要导入相关jar包,2.x 的版本已经整合进去了,直接使用即可。

    spring官网提供了 springboot 的文件上传下载案例,这是网址:https://spring.io/guides/gs/uploading-files/,使用的是流的输出,对于我这个新手来说,直接不理解,所以略过,通过网上查阅大量资料,终于把问题解决了。下面的案例是 springboot2.x 图片上传与回显。我使用的工具是idea。

    1、创建idea默认的springboot项目,我的版本是2.0.3

    2、创建一个控制层FileController

    package com.rainy.controller;
    
    import org.apache.catalina.servlet4preview.http.HttpServletRequest;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.multipart.MultipartFile;
    
    import java.io.*;
    import java.util.UUID;
    
    /**
     * 文件上传
     */
    @Controller
    public class FileController {
    
        @GetMapping(value = "/file")
        public String file() {
            return "file";
        }
    
        @PostMapping(value = "/fileUpload")
        public String fileUpload(@RequestParam(value = "file") MultipartFile file, Model model, HttpServletRequest request) {
            if (file.isEmpty()) {
                System.out.println("文件为空空");
            }
            String fileName = file.getOriginalFilename();  // 文件名
            String suffixName = fileName.substring(fileName.lastIndexOf("."));  // 后缀名
            String filePath = "D://temp-rainy//"; // 上传后的路径
            fileName = UUID.randomUUID() + suffixName; // 新文件名
            File dest = new File(filePath + fileName);
            if (!dest.getParentFile().exists()) {
                dest.getParentFile().mkdirs();
            }
            try {
                file.transferTo(dest);
            } catch (IOException e) {
                e.printStackTrace();
            }
            String filename = "/temp-rainy/" + fileName;
            model.addAttribute("filename", filename);
            return "file";
        }
    }
    

    3、创建MyWebMvcConfigurer,这里是配置资源映射路径,详细点的介绍看这篇文章:https://blog.csdn.net/qq_38762237/article/details/81283241

    /**
     * 资源映射路径
     */
    @Configuration
    public class MyWebAppConfigurer implements WebMvcConfigurer {
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/temp-rainy/**").addResourceLocations("file:D:/temp-rainy/");
        }
    }
    

    4、jsp页面

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <form action="/fileUpload" method="post" enctype="multipart/form-data">
            <label>上传图片</label>
            <input type="file" name="file"/>
            <input type="submit" value="上传"/>
        </form>
        <p>图片:</p>
        <img src="${filename }"/>
    </body>
    </html>
    
    

    注意一点:我是使用jsp引擎来渲染,因为我不会用 Thymeleaf,添加jsp页面,springboot使用jsp页面是需要进行配置jsp整合的,默认的是 Thymeleaf 的页面,简单的就是HTML页面

    springboot配置jsp页面的方法:https://blog.csdn.net/qq_38762237/article/details/81283352

    这里写图片描述

    推荐项目

    微信公众号

    每天Get一个小技巧

    展开全文
  • 在学习淘淘商城第三天的时候,批量上传图片到服务器,正确的姿势是这样的: 但是添加图片那个按钮没有出现,然后百度说是缺少flash ,所以把flash更新了,然而并没有解决问题。   最终解决方案是,打开淘淘商城...

    在学习淘淘商城第三天的时候,批量上传图片到服务器,正确的姿势是这样的:

    但是添加图片那个按钮没有出现,然后百度说是缺少flash ,所以把flash更新了,然而并没有解决问题。

     

    最终解决方案是,打开淘淘商城网页,然后用浏览器调试功能,显示缺少一个images包

    然后去把images包添加进工程,ok解决问题。

    展开全文
  • 3、点击“开始上传”按钮,显示在页面上,图片信息传到后台中,将图片进行保存; 4、还可以上传多个文件。 效果图上完了,就开始代码咯!   //layUI代码 &lt;div class="layui-upload"&...

    效果图:

    1、点击“选择文件”,进行选择将要上传的文件;

    2、选择好将要上传的文件,文件名称显示在“选择文件”按钮后面;

    3、点击“开始上传”按钮,显示在页面上,图片信息传到后台中,将图片进行保存;

    4、还可以上传多个文件。

    效果图上完了,就开始代码咯!

     

    //layUI代码
    <div class="layui-upload">
    	<span style="margin-left: 16px;">单位平面图:   </span>
    	<input type="file" name="file" id="s_pmt_dw" style="width:190px">
    	<button type="button" class="layui-btn" id="test9">上传</button>
    	<div class="layui-upload-list" id="demo2"></div>
    </div>
    //选完文件后不自动上传(js代码,将文件传到后台)
    		  upload.render({
    		    elem: '#s_pmt_dw'				//“选择文件”按钮的ID
    		    ,url: './rest/population/uploadPortrait'	//后台接收地址
    		    ,data: {s_rkbm: '1',type:'S1'}		//传递到后台的数据
    		    ,auto: false				//不自动上传设置
    	    	    ,accept: 'file'				 //允许上传的文件类型
    	  	    ,exts: 'png|jpg|bmp' 			//设置智能上传图片格式文件
    	    	    ,size: 5000 				//最大允许上传的文件大小
    		    ,multiple: true				//设置是否多个文件上传
    		    ,bindAction: '#test9'			//“上传”按钮的ID
    		    ,before: function(obj){
    			    //预读本地文件示例,不支持ie8
    			    obj.preview(function(index, file, result){		//在当前ID为“demo2”的区域显示图片
    			      $('#demo2').append('<img name = "s_pmt_dw" style="width: 120px; height: 150px; margin-left: 16px;" src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img">')
    			    });
    			   }
    		    ,done: function(res){
    		      console.log(res)
    		    }
    		  });


     


    这是后台controller层接收图片数据用的

     @RequestMapping(value = "/uploadPortrait", method = RequestMethod.POST)
        public ResponseEntity<?> uploadPortrait(HttpServletRequest request, String s_rkbm,String type, @RequestParam(value = "file")MultipartFile[] files) {
            Response response = new Response();
            try {
                for (int i = 0; i < files.length; i++) {
                    UploadUtils uploadUtils = new UploadUtils();		//UploadUtils 就是一个文件上传的工具类,自己写一个就可以了
                    String id = UuidUtil.get32UUID();
                    //设置目录文件名称
                    //其中images,flashs,medias,files,对应文件夹名称,对应dirName
                    uploadUtils.setDirName("images");
                    //设置文件名称
                    uploadUtils.setFileName(id);
                    //设置上传文件最大值(byte)
                    uploadUtils.setMaxSize(10000000);
                   /**
                    * 开始上传文件
                    * info[0] 验证文件域返回错误信息 info[1] 上传文件错误信息 info[2] savePath info[3] saveUrl info[4] fileUrl
                    */
                    String[] info = uploadUtils.uploadFile(files[i], request);
                    if("true".equals(info[0]) && "true".equals(info[1])){
                        NbdwInfoTp nbdwInfoTp = new NbdwInfoTp();
                        nbdwInfoTp.setS_id(id);
                        nbdwInfoTp.setS_sydw_dwbm(s_rkbm);
                        nbdwInfoTp.setS_xplx(files[i].getContentType());
                        nbdwInfoTp.setS_xpwjmc(info[4]);
                        nbdwInfoTp.setS_xxdjly_zaglywlbdm(type);
                        System.out.println(nbdwInfoTp.toString());
                        int ret = 0;
                        //int ret = populationService.savePopulationRx(actualPopInRx);
                        if(ret == 0){
                            response.setState(EnumStatus.SUCCESS);
                            response.setMessage("文件上传成功 ");
                        }
                    }else{
                        response.setState(EnumStatus.FAIL);
                        response.setMessage("文件上传成功 ");
                    }
                    
                }
            } catch (Exception e) {
                response.setState(EnumStatus.FAIL);
                response.setMessage("文件上传成功 ");
            }
            return backResponse(response);
        }


     

    工具类

    public class Base64UploadUtils {
    	//本地磁盘路径
    	private String path = ConfigManager.getInstance().getConfigItem("Base64Upload_root", "");
    	//图片最大大小(byte)
    	private long maxSize = 1000000;
    	//文件后缀
    	private String suffix = "";  
    	//文件上传相对路径
    	private String basePath = "uploadFiles";
    	// 文件最终的url包括文件名
    	private String fileUrl;
    	// 若不指定则文件名默认为 yyyyMMddHHmmss_xyz
    	private String fileName;
    	// 文件保存目录路径
    	private String savePath;
    	// 文件保存目录url
    	private String saveUrl;
    	// 文件实际大小 KB
    	private long fileSize;
    	// 解码后的base64
    	private byte[] by;
    	
    	public Base64UploadUtils(){
    		
    	}
    	
    	/**
    	 * 文件上传
    	 * @param base64Data base64编码
    	 * @param path 上传路径
    	 * @return infos[0] 文件后缀 infos[1]验证大小 infos[2]保存信息 infos[3]文件大小 infos[4]文件路径
    	 */
    	public String[] uploadFile(String base64Data){
    		String[] infos = new String[5];
    		if (Tools.isEmpty(base64Data)) {
    			infos[0] = "图片数据不能为空";
    		}else {
    			infos[0] = this.validateFormt(base64Data);
    			infos[1] = this.validateSize(base64Data);
    			if (Tools.notEmpty(infos[0]) && Tools.isEmpty(infos[1]) && Tools.notEmpty(path)) {
    				infos[2] = this.SaveImage();
    				infos[3] = (fileSize/1024 + "kb").toString();
    				infos[4] = "/"+ConfigManager.getInstance().getConfigItem("Base64Upload_path", "")+fileUrl.split(path)[1]; //fileUrl.substring(fileUrl.indexOf("/")+1, fileUrl.length());
    			}
    		}
    		return infos;
    	}
    	
    	/**
    	 * 验证格式
    	 * @param base64Data
    	 * @return
    	 */
    	public String validateFormt(String base64Data){
    		if("data:image/jpeg;".equalsIgnoreCase(base64Data.substring(0, base64Data.indexOf(";")+1))){//data:image/jpeg;base64,base64编码的jpeg图片数据  
                suffix = "jpg";  
            } else if("data:image/bmp;".equalsIgnoreCase(base64Data.substring(0, base64Data.indexOf(";")+1))){//data:image/bmp;base64,base64编码的bmp图片数据
                suffix = "bmp";
            } else if("data:image/png;".equalsIgnoreCase(base64Data.substring(0, base64Data.indexOf(";")+1))){//data:image/png;base64,base64编码的png图片数据
                suffix = "png";
            }else{  
            	suffix = "";
            }    
    		return suffix;
    	}
    	
    	/**
    	 * 验证大小并初始化目录
    	 * @param base64Data
    	 * @return
    	 */
    	public String validateSize(String base64Data){
    		String error = "";
    		//截取base64编码前缀
    		base64Data = base64Data.substring(base64Data.indexOf("-")+1, base64Data.length());
    		by = Base64Utils.decodeFromString(base64Data);
    		fileSize = by.length;
    		if (fileSize>maxSize) {
    			error = "上传文件大小超过限制";
    		}else {
    			//创建文件夹
    			savePath = path + "/"+basePath;
    			saveUrl = path + "/"+basePath;
    			File saveDirFile = new File(savePath);
    			if (!saveDirFile.exists()) {
    				saveDirFile.mkdirs();
    			}
    			SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    			String ymd = sdf.format(new Date());
    			savePath += "/"+ymd;
    			saveUrl +="/"+ymd;
    			File dirFile = new File(savePath);
    			if (!dirFile.exists()) {
    				dirFile.mkdirs();
    			}
    		}
    		return error;
    	}
    	
    	/**
    	 * 保存图片
    	 * @param base64Data
    	 * @return
    	 */
    	public String SaveImage(){
    		String error = "";
    		String newFileName;
    		if (Tools.notEmpty(fileName)) {
    			newFileName = fileName + "."+suffix;
    		}else {
    			SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
                newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + "." + suffix;
    		}
    		fileUrl = saveUrl +"/"+ newFileName;
    		try {
    			FileUtils.writeByteArrayToFile(new File(fileUrl), by);
    			error = "true";
    		} catch (IOException e) {
    			SysLog.error(e);
    			e.printStackTrace();
    		}
    		return error;
    	}
    	
    	
    	
    	public long getMaxSize() {
    		return maxSize;
    	}
    
    	public String getSuffix() {
    		return suffix;
    	}
    
    	public String getBasePath() {
    		return basePath;
    	}
    
    	public String getFileUrl() {
    		return fileUrl;
    	}
    
    	public String getFileName() {
    		return fileName;
    	}
    
    	public String getSavePath() {
    		return savePath;
    	}
    
    	public String getSaveUrl() {
    		return saveUrl;
    	}
    
    	public long getFileSize() {
    		return fileSize;
    	}
    
    	public byte[] getBy() {
    		return by;
    	}
    
    	public void setMaxSize(long maxSize) {
    		this.maxSize = maxSize;
    	}
    
    	public void setFileName(String fileName) {
    		this.fileName = fileName;
    	}
    }
    

     

    这样就完成了图片上传的全过程!由于layUI目前不支持图片和页面中的其他字段一同上传到后台,所以图片将采用异步上传的方式,这样将产生两个请求。

     

     

     

    扫码领红包咯!领取余额宝红包,支付时用余额宝支付,就可以使用了!(少则1元,多则3-10元)时间有限哦

     

     

     

     

     

    展开全文
  • 依赖input file标签上传图片

    千次阅读 2018-11-24 15:26:21
    不用input file,就是想去选文件,我就要用固定的图片上传,这个固定可能是固定的某一张图片,也可能是固定策略生成的图片(每次都生成,但每次都一样,比如聊天截图。。。)。 第一种方式:图片转canvas -----》...
  • 在很多的网站都可以实现上传头像,可以选择自己喜欢的图片做头像,从本地上传,下次登录时可以直接显示出已经上传的头像,那么这个是如何实现的呢?   下面说一下我的实现过程(只是个人实现思路,实际网站怎...
  • 图片上传File对象兼容IE

    千次阅读 2018-06-27 17:20:30
    图片上传不兼容IE的File对象 非IE上传: 将base64为图片转换成file文件,上传 let formData = new FormData(); file = that.dataURLtoFile(data,this.file.name); formData.append('files',file); ...
  • destoon 上传多张照片,出现后面的图片上传不了解决办法: 在 upload.php中,注释这段话: 大约 223行 $_saveto = $swfupload ? str_replace('.thumb.'.$do->ext, '', $saveto) : $saveto;
  • 使用ueditor上传图片后,图片路径正确导致图片不能显示
  • 类似于QQ空间、微信朋友圈图片上传、用GridView实现多图选择图片上传。包括服务端代码。这是本人就地取材、所以服务端代码可能有部分相关。有兴趣的朋友可以自己看看、简洁明了的。
  • 我们常见的上传文件或者图片 是...如果是上传照片图片,安卓机有一个问题,只能选取照片,能去调取相机进行拍照。 而苹果机 ios系统的 会直接出现选择 相机拍照还是照片图库。 所以解决安卓调取照相机的问题,...
  • OSS 阿里云上传照片以及上传照片时的特殊设置
  • UEditor多图上传时,由于后台上传接口返回的时间不同,会造成显示上传后的图片与选择时的图片顺序一致的问题。 举个栗子: 多图上传时,先后选择了a.png和b.png,其中a.png大小为900k,b.png大小为5k,当上传...
  • 如何判断选择了上传图片后面的url就能为空,没有选择上传图片后面的url可以为空。并给出提示:地址能为空 代码如下: input type="file" name="myfiles" input type="input" name="url1" id="url1" input ...
  • 点击上传照片报错信息如下: **产生原因:**在D盘的路径下找到upload文件夹,导致上传图片报错。 **解决方法:**在D盘下按提示找到Tedustore文件夹,在下面创建upload文件夹即可,上传图片就会成功。 ...
  • 填写时点提交会出现红色提示文字,但是当图片上传成功后,提示文字并不会消失。尝试在自定义校验中进行判断如果图片变量有数据就提示,但是管用。最后发现在图片上传成功的组件里需要把数据返回到父页面,父...
  • springmvc上传图片并显示图片--支持多图片上传

    万次阅读 多人点赞 2015-07-13 21:44:23
    springmvc上传图片并显示图片(也能上传文件),多图片上传并显示图片,采用commons-fileupload,commons-io
  • html上传图片直接显示,JS实现图片上传直接显示,具体上传格式可以自己进行更改~
  • 很多网站系统为了节省自身服务器空间,会将资源文件存储在第三方,这样很方面,只是存储空间需要收费的,如果用户上传过大图片会占用很多空间,然后显示也需要调用原文件。 最近遇到一个关于这方面的问题,公司...
  • 就像这样,实在是接受了,并且需求是上传之后没有这个上传按钮,删除图片之后再出现。 首先我通过浏览器找到了这个上传图片按钮的class名称为 .el-upload–picture-card 我知道可以直接修改,所以决定给这个组件...
  • 之前做过一个项目,有一个功能是图片上传并且展示图片,尝试过其他的方法,但会有一个问题,那就是在IE8上图片并能正常展示,所以便用以下方法来上传图片,很好的解决了此问题,步骤如下: 1.上传图片页面index....
  • asp. net 批量上传图片,uc浏览器如何批量上传啊,不是一张一张的上传
  • 越来越想写博客了,真的是累,而且还没报酬。哎。仅剩的知识都要被你们无偿剥夺。好了,废话多说,进入正题。前台:既然你们都走到这里来了,那么前面的就在多说了,直接进去配置好的页面。需要上传的路径返回...
  • chrome上传图片

    热门讨论 2014-04-01 10:04:07
    解决chrome浏览器下使用控件上传文件时出现C:\fakepath\xx路径问题,例子下载下来可以直接使用
  • 此文基于之前博文vue使用tinymce...1.安装图片上传以及图片批量上传插件 import "tinymce/plugins/image"; import "tinymce/plugins/axupimgs"; 2.在toolbar和plugins中使用这两个插件,使用自定义图片上传方法 plug...
  • Java MultipartFile 上传文件/上传图片1. 判断允许上传文件的 后缀/图片后缀工具类2. 上传接口3. 上传成功 1. 判断允许上传文件的 后缀/图片后缀工具类 import org.springframework.stereotype.Component; import ...
  • 调用微信JS-SDK接口上传图片

    万次阅读 多人点赞 2016-05-21 12:50:35
    最近要在微信上做个问卷调查,有个上传图片功能,折腾找了半天资料,都不好弄,最终打算调用微信提供的上传图片接口,实现上传图片功能!此功能最大的好处是可以在微信服务器上暂存图片,减少本地服务器图片的缓存,...
  • web项目,(jeecg框架) 上传图片绝对路径(C://upFiles/...) 本地一切ok 发布到服务器上(windows Server 2008)测试, 上传图片,ok,服务器目录下有了...当查看该图片时,访问到了, error 400 求大神解答。
  • jandroid选择图片或拍照上传图片

    千次下载 热门讨论 2012-11-22 20:20:17
    相关文章说明: http://blog.csdn.net/vipa1888/article/details/8213898
  • CSDN上传图片

    千次阅读 2018-05-21 22:32:36
    一般情况下,直接复制粘贴就可以直接在文章中显示,但有时会有成功的情况,如图所示,这个就是我复制粘贴的效果。我想选择通过CSDN的博客上面的上传按钮来上传但出现的效果是上传卡在那了,那怎么办?我才用的方法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 559,878
精华内容 223,951
关键字:

上传照片怎么上传不了