精华内容
下载资源
问答
  • PicoFilePrefixes从页面URL删除文件前缀(例如,日期标识符)。 例如,博客文章content/blog/20160707.visit-us-on-github.md通常对应于页面URL ,但是,通过安装此插件,可以通过更加用户友好的URL 来访问本文。 ...
  • —只演示上传图片返回 url 直接访问 1、获取服务器 ip、端口 2、上传文件值项目跟目录 3、赋值上传文件目录读写权限 ----以下是layui相关,非layui无视即可 4、Layui --> 数据返回格式 5、Layui --> 修改上传...

    – 主要解决问题:直接上传到服务器的文件是在编译后的目录里,是无法通过url 访问到的

    —只演示上传图片返回 url 直接访问
    1、上传文件值项目跟目录
    2、赋值上传文件目录读写权限
    ----以下是layui相关,非layui无视即可
    3、Layui --> 数据返回格式
    4、Layui --> 修改上传–> 2、上传文件值项目跟目录(只修改返回格式)
    5、Layui --> Html代码
    6、Layui --> Js上传文件代码

    效果展示(前台使用的Layui )

    上传前
    在这里插入图片描述
    上传后(此处直接使用的上传后的 url 展示,不是本地文件展示)

    在这里插入图片描述
    url 是可以直接访问的
    在这里插入图片描述

    1、上传文件方法

    /**
     * 文件上传
     * @author peter 2018/10/20 21:32
     */
    @Controller
    public class FileController {
    
    	/**
    	 * 上传路径
    	 */
    	private static String UPLOAD_PATH = "File/image/upload";
    
    	/**
    	 * 图片上传,需要赋值读写权限-->
    	 * 
    	 * @author wangsong
    	 * @date 2019年6月14日 下午2:31:49
    	 * @param request
    	 * @return
    	 */
    	@RequestMapping(value = "/uploadImage", method = RequestMethod.POST)
    	@ResponseBody
    	public JSONObject uploadImage(HttpServletRequest request) {
    		try {
    			MultipartFile image = ((MultipartHttpServletRequest) request).getFile("file");
    			String name = image.getOriginalFilename();
    			InputStream inputStream = image.getInputStream();
    			// 获得客户端发送请求的完整url
    			String url = request.getRequestURL().toString();
    			// 获得去除接口前的url
    			String urlVal = url.replace("/uploadImage", "");
    			// 目录路径
    			Path directory = Paths.get(UPLOAD_PATH);
    			// 判断目录是否存在,不存在创建
    			if (!Files.exists(directory)) {
    				Files.createDirectories(directory);
    			}
    			// 判断文件是否存在,存在删除
    			if (Files.exists(directory.resolve(name))) {
    				File file = new java.io.File(UPLOAD_PATH + "/" + name);
    				file.delete();
    			}
    			// 拷贝文件
    			Files.copy(inputStream, directory.resolve(name));
    			// url路径
    			// String path = serverConfig.getUrl() + "/" + UPLOAD_PATH + "/" + name;
    			String path = urlVal + "/" + UPLOAD_PATH + "/" + name;
    			// layui 数据格式返回
    			Map<String, Object> jsonObjMap = FileData.jsonObj(path);
    			JSONObject resObj = JSONObject.fromObject(jsonObjMap);
    			return resObj;
    		} catch (Exception e) {
    
    			Map<String, Object> jsonObjMap = FileData.jsonObj(200, "上传失败");
    			JSONObject resObj = JSONObject.fromObject(jsonObjMap);
    			return resObj;
    		}
    	}
    
    
    	/**
    	 * 使用流将图片输出
    	 * @param response
    	 * @param name
    	 * @throws IOException
    	 */
    	@GetMapping("/getImage/{name}")
    	public void getImage(HttpServletResponse response, @PathVariable("name") String name) throws IOException {
    		response.setContentType("image/jpeg;charset=utf-8");
    		response.setHeader("Content-Disposition", "inline; filename=girls.png");
    		ServletOutputStream outputStream = response.getOutputStream();
    		outputStream.write(Files.readAllBytes(Paths.get(UPLOAD_PATH).resolve(name)));
    		outputStream.flush();
    		outputStream.close();
    	}
    }
    
    

    2、赋与上传文件目录读写权限

    package com.hy.wargame.config;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
    import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
    import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    
    import com.hy.wargame.interceptor.LoginInterceptor;
    
    
    /**
     * 项目根目录下  /File/**
     * @author wangsong
     * @date 2019年4月10日 下午4:21:08
     */
    @Configuration
    public class MvcConfig implements WebMvcConfigurer {
    
    		/**
    	 * 赋值文件读写权限
    	 */
    	@Override
    	public void addResourceHandlers(ResourceHandlerRegistry registry) {
    		registry.addResourceHandler("/File/**").addResourceLocations("file:File/");
    	}
    }
    

    ----以下是layui相关,非layui无视即可

    3、Layui --> 数据返回格式

    maven 依赖 json-lib 没有的加上

    	<!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib -->
    		<!-- jsonObject 支持  -->
    		<dependency>
    			<groupId>net.sf.json-lib</groupId>
    			<artifactId>json-lib</artifactId>
    			<version>2.4</version>
    			<classifier>jdk15</classifier>
    		</dependency>
    

    layui 要求返回的数据格式

    package com.hy.wargame.controller.manage.vo;
    
    import java.util.Hashtable;
    import java.util.Map;
    
    public class FileData {
    
    	public static Map<String, Object> jsonObj(Object data) {
    		Map<String, Object> resObj = new Hashtable<String, Object>();
    		resObj.put("code", "0");
    		resObj.put("msg", "ok");
    		resObj.put("data", data);
    		System.out.println(resObj);
    		return resObj;
    	}
    
    	public static Map<String, Object> jsonObj(int code, String msg) {
    		Map<String, Object> resObj = new Hashtable<String, Object>();
    		resObj.put("code", code);
    		resObj.put("msg", msg);
    		resObj.put("data", 0);
    		System.out.println(resObj);
    		return resObj;
    	}
    }
    
    

    4、Layui --> 修改上传–> 2、上传文件值项目跟目录(只修改返回格式)

    	// layui 数据格式返回,path 为data数据,返回的值
    			Map<String, Object> jsonObjMap = FileData.jsonObj(path);
    			JSONObject resObj = JSONObject.fromObject(jsonObjMap);
    			return resObj;
    

    完整上传代码

    @RequestMapping(value = "/uploadImage", method = RequestMethod.POST)
    	@ResponseBody
    	public JSONObject uploadImage(HttpServletRequest request) {
    		try {
    			MultipartFile image = ((MultipartHttpServletRequest) request).getFile("file");
    			String name = image.getOriginalFilename();
    			InputStream inputStream = image.getInputStream();
    			// 目录路径
    			Path directory = Paths.get(UPLOAD_PATH);
    			// 判断目录是否存在,不存在创建
    			if (!Files.exists(directory)) {
    				Files.createDirectories(directory);
    			}
    			// 判断文件是否存在,存在删除
    			if (Files.exists(directory.resolve(name))) {
    				File file = new java.io.File(UPLOAD_PATH + "/" + name);
    				file.delete();
    			}
    			// 拷贝文件
    			Files.copy(inputStream, directory.resolve(name));
    			// url路径
    			String path = serverConfig.getUrl() + "/" + UPLOAD_PATH + "/" + name;
    			// layui 数据格式返回
    			Map<String, Object> jsonObjMap = FileData.jsonObj(path);
    			JSONObject resObj = JSONObject.fromObject(jsonObjMap);
    			return resObj;
    		} catch (Exception e) {
    
    			Map<String, Object> jsonObjMap = FileData.jsonObj(200, "上传失败");
    			JSONObject resObj = JSONObject.fromObject(jsonObjMap);
    			return resObj;
    		}
    	}
    

    5、Layui --> Html代码

             <div class="layui-upload">
               <label  class="layui-form-label">活动图片:</label>
                <button type="button" class="layui-btn" id="test6">上传图片</button>
                 <input type="hidden" id="path" name="path" value="">
                 <span id="url" ></span>
    		     <div class="layui-upload-list" >
    		    <img class="layui-upload-img" style="width: 500px;height: 200px;margin-left: 15%"       id="demo1">
    		    <p id="demoText"></p>
    		  </div>
    		 </div>  
    

    说明:

    在这里插入图片描述

    6、Layui --> Js上传文件代码

    <script>
    layui.use(['form', 'layedit', 'laydate','upload'], function(){
      
       var form = layui.form
      ,layer = layui.layer
      ,layedit = layui.layedit
      ,laydate = layui.laydate
      ,upload = layui.upload;
     
      
       //普通图片上传
       var uploadInst = upload.render({
         elem: '#test6'
         ,url: '/uploadImage'
         ,before: function(obj){
           //预读本地文件示例,不支持ie8
         /*   obj.preview(function(index, file, result){
             $('#demo1').attr('src', result); //图片链接(base64)
           }); */
         }
         ,done: function(res){
           //如果上传失败
           if(res.code > 0){
             return layer.msg('上传失败');
           }
           //上传成功
           //后台保存数据库
           $("#path").val(res.data);
           //显示url
           $("#url").html(res.data);
           //通过url预览服务器图片
           $("#demo1").attr("src",res.data);
         }
         ,error: function(){
           //演示失败状态,并实现重传
           var demoText = $('#demoText');
           demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
           demoText.find('.demo-reload').on('click', function(){
             uploadInst.upload();
           });
         }
       });
     <script>
    
    展开全文
  • 在介绍完配置文件中的入口和出口基本操作流程后,接下来我们介绍loader的基本使用,本文主要介绍url-loader的使用流程。 loader 用于对模块的源代码进行转换。loader 可以使你在import或"加载"模块时预处理文件。...

    概述

            在介绍完配置文件中的入口和出口基本操作流程后,接下来我们介绍loader的基本使用,本文主要介绍url-loader的使用流程。

            loader 用于对模块的源代码进行转换。loader 可以使你在 import 或"加载"模块时预处理文件。因此,loader 类似于其他构建工具中“任务(task)”,并提供了处理前端构建步骤的强大方法。loader 可以将文件从不同的语言(如 TypeScript)转换为 JavaScript,或将内联图像转换为 data URL。loader 甚至允许你直接在 JavaScript 模块中 import CSS文件!

            url-loader 功能类似于 file-loader,但是在文件大小(单位 byte)低于指定的限制时,可以返回一个 DataURL。

     

    具体操作步骤

            1、新建文件夹,然后新建“webpack.config.js”配置文件,里面除了前几篇文章中我们介绍过的入口出口配置代码之外,添加loader的配置代码,本文我们使用的loader是url-loader,所以加入如下代码:

    const path=require('path');
    
    module.exports={
    	entry:'./input.js',
    	output:{
    		path:path.resolve(__dirname,'dist'),
    		filename:'output.bundle.js'
    	},
    	mode:'development',
    	module:{
    		rules:[
    			{
    				test:/\.(png|jpg|gif)$/i,
    				use:[
    					{
    						loader:'url-loader',
    						options:{
    							limit:8192
    						}
    					}
    				]
    			}
    		]
    	}
    };

            上述代码可看出,其实我们就新增了module这个属性。此属性中的rules字段下包含两个字段:test和use。test的含义是根据一个正则表达式去匹配相应的文件,在此处匹配jpg、png、gif格式的图片;use的含义是对于上述匹配的文件,指定要使用的loader,此处使用的是url-loader,并且此属性也提供了一个options字段,意思是在8192字节(大约8k)以内的文件使用url-loader,超过此大小的文件将不使用此loader。

            2、根据配置文件,在目录下新建“input.js”入口文件,和img目录,并且在img目录里面随便放置两张图片,然后编写input.js的代码:

    const good='hello'; 
    
    import img1 from './img/01.png'; 
    import img2 from './img/02.jpg';

            上述代码加载了img目录下的两张图片。此处我们主要是学习url-loader的使用,所以不编写其他逻辑代码,仅仅加载图片即可。到此为止,我们的文件目录如下所示:

     

           3、在目录下运行命令行工具,并进行文件打包(通过“webpack”命令),如图:

            如上图所示,当我们运行“webpack”命令时会报错,提示没有安装url-loader,所以接下来我们进行安装。

            4、在安装之前呢,先要通过命令“npm init -y”来生成一个package.json文件,然后通过命令“npm install url-loader --save-dev”来安装url-loader,如图:

            安装完成后我们在package.json文件中可看到安装的插件及版本号,如下图:

           5、安装后我们再执行webpack来进行打包,如图:

            如上图所示,安装url-loader后再执行打包,又报错说没有找到file-loader,那我们继续安装此插件,通过“npm install file-loader --save-dev”命令,如图:

            6、安装file-loader后再继续打包,如图:

           此时可以看到打包成功,在目录下生成了一个“dist”文件夹,里面是一份js输出文件和两张图片,如图:

            但是,这两张图片的大小和img目录下的两张图片大小一样,并没有打包,这是为什么呢?原因就是跟我们在配置文件中设置的limit这个属性值有关,我们设置的是8k以内才会使用url-loader,但是这两张图片大小基本都是800k左右,所以我们更改limit的值,如下:

            我们再次执行打包,结果如下:

            这次打包后并没有再看到图片,仅仅是一份js文件,那就说明我们url-loader试用成功,并且文件打包成功,此结果文件大小跟上次生成的结果相比也是变得比较大。

            有些小伙伴如果打包后的js文件大小变大了,但是还有两张图片的话那就说明在打包前并没有删除dist文件夹哦,我们在打包前记得删除dist文件夹,再执行打包命令。

     

    总结

            本文主要介绍loader的使用方法,主要介绍了url-loader的基本使用,在使用过程中会出现报错信息,我们也提供了解决方法,在我们以后使用loader这些插件时经常会出现某些插件缺失这种情况,像在本文中一样,我们要学会安装解决此类问题。

    展开全文
  • 根据URL上传文件/图片

    千次阅读 2019-02-21 16:06:59
    然后将成功的返回结果信息中的fileId内容保存到数据库中,删除对应的文件。 响应结果示例: 2、应用方法:创建HttpClient 来实现 httpPost 方式访问文档服务器,发送上传请求上传文件。  执行上传的基本操作:...

    1、使用场景:远程文档服务器,给定接口,请求参数格式等信息,系统根据配置的路径及后缀,获取指定类型的文件,在应用中上传文件/图片到服务器中。然后将成功的返回结果信息中的fileId内容保存到数据库中,删除对应的文件。

    响应结果示例:

    2、应用方法:创建HttpClient 来实现 httpPost 方式访问文档服务器,发送上传请求上传文件。

            执行上传的基本操作:

                   a. 通过HttpClients.createDefault()方法,创建httpClient对象;

                   b. 根据URL通过new HttpPost(url) 方式,创建httpPost对象;

                   c. MultipartEntityBuilder.create()方法,创建multipartEntityBuilder对象;

                   d. 给multipartEntityBuilder对象设置必要的参数(重要:addBinaryBody("file", file)),这里第一个参数只能是“file”;

                   e. 给multipartEntityBuilder对象设置其他附加的请求参数,使用addTextBody(paramName, paramContent, paramContentType);

                   f.  调用multipartEntityBuilder对象的build()方法,转换成Http'Entity类型,传入httpPost.setEntity()方法中;

                   g. 传入httpPost对象,调用httpClient.excute(httpPost)方法,执行上传操作;

          上传代码示例如下:

        /**
         * 上传执行
         *
         * @param file
         * @param params
         * @return String
         */
        private String uploadExecute(File file, Map<String, String> params) {
            CloseableHttpClient httpClient = HttpClients.createDefault();
            HttpPost httpPost = new HttpPost(postUrl);
            RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(200000).setSocketTimeout(200000000).build();
            String result = null;
            HttpResponse response = null;
    
            MultipartEntityBuilder mEntityBuilder = MultipartEntityBuilder.create();
            mEntityBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
            mEntityBuilder.addBinaryBody("file", file);
            // 设置其他参数
            for (Map.Entry<String, String> entry : params.entrySet()) {
                mEntityBuilder.addTextBody(entry.getKey(), entry.getValue(), ContentType.TEXT_PLAIN.withCharset("UTF-8"));
            }
            httpPost.setConfig(requestConfig);
            httpPost.setEntity(mEntityBuilder.build());
            try {
                response = httpClient.execute(httpPost);
                int statusCode = response.getStatusLine().getStatusCode();
                //上传成功,返回结果
                if (statusCode == HttpStatus.SC_OK) {
                    log.info("名称为:{} 的文件上传成功", file.getName());
                    HttpEntity resEntity = response.getEntity();
                    result = EntityUtils.toString(resEntity);
                    // 消耗掉response
                    EntityUtils.consume(resEntity);
                } else {
                    log.info("名称为:{} 的文件上传失败", file.getName());
                    log.info("上传失败原因为:{}", EntityUtils.toString(response.getEntity()));
                }
            } catch (IOException e) {
                log.error("上传文件发生异常:{}", e);
            } finally {
                HttpClientUtils.closeQuietly(httpClient);
                HttpClientUtils.closeQuietly(response);
            }
            return result;
        }

    根据配置路径及后缀获取指定类型文件的代码示例如下:

        /**
         * 获取目录下指定类型文件
         *
         * @return List
         */
        private List<File> uploadBefore(String filePath) {
            log.info("当前任务获取文件的路径为:{}", filePath);
            List<File> list = new ArrayList<>();
            File curPath = new File(filePath);
            File[] files = curPath.listFiles();
            if (files == null || files.length == 0) {
                log.info("该路径下没有任何文件");
                return Collections.emptyList();
            }
            String[] suffixes = suffix.split(",");
            for (String curSuffix : suffixes) {
                log.info("获取后缀为:{} 的目标文件", "." + curSuffix);
                for (File file : files) {
                    if (file.getName().endsWith("." + curSuffix)) {
                        log.info("获取到目标文件:{}", file.getName());
                        list.add(file);
                    }
                }
                log.info("获取到的目标文件数量为:{}", list.size());
            }
            return list;
        }

    根据文件后缀,从文件名中获取表名的代码如下:

    /**
     * 根据文件名解析表名称
     *
     * @author liwenqiang 2019/2/14 11:20
     **/
    public class AnalysisTableNameUtil {
    
        public static String getTableName(String fileName) {
            String tableName = null;
            if (fileName.endsWith(".zip")) {
                //截取_之前的内容
                tableName = StringUtils.substringBeforeLast(fileName, "_");
            } else if (fileName.endsWith(".xls") || fileName.endsWith(".xlsx")) {
                //截取第一个数字之前的内容
                Pattern p = Pattern.compile("([0-9])");
                Matcher matcher = p.matcher(fileName);
                if (matcher.find()) {
                    int index = fileName.indexOf(matcher.group());
                    tableName = fileName.substring(0, index);
                }
            }
            return tableName;
        }
    }

     

    展开全文
  • java通过url得到文件对象(支持http和https)

    万次阅读 热门讨论 2019-08-13 11:38:10
    项目有时候需要通过一个url地址来得到一个文件,此方式就是通过一个url文件下载到本地的临时文件,直接上代码 /** * 远程读取文件 * * @param netUrl * @return */ public static File getNetUrl(String ...

    项目有时候需要通过一个url地址来得到一个文件,此方式就是通过一个url将文件下载到本地的临时文件,直接上代码

        /**
         * 远程读取文件
         *
         * @param netUrl
         * @return
         */
        public static File getNetUrl(String netUrl) {
            //判断http和https
            File file = null;
            if (netUrl.startsWith("https://")) {
                file = getNetUrlHttps(netUrl);
            } else {
                file = getNetUrlHttp(netUrl);
            }
            return file;
        }

    全部引用的包,工具类可能有其他引用,取自己所需的路径就好

    import com.xiangweihui.core.util.other.X509TrustUtiil;
    import lombok.extern.slf4j.Slf4j;
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.disk.DiskFileItem;
    import org.apache.commons.io.IOUtils;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.core.io.DefaultResourceLoader;
    import org.springframework.core.io.Resource;
    import org.springframework.core.io.ResourceLoader;
    import org.springframework.web.multipart.MultipartFile;
    import org.springframework.web.multipart.commons.CommonsMultipartFile;
    
    import javax.net.ssl.*;
    import javax.servlet.http.HttpServletRequest;
    import java.io.*;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.net.URLEncoder;
    import java.nio.channels.FileChannel;
    import java.util.*;

    getNetUrlHttp方法

    这里创建的是本地临时文件,所以用完了之后,不用刻意调用file.delete方法进行删除

    public static File getNetUrlHttp(String netUrl) {
            //对本地文件命名
            String fileName = StringUtils.reloadFile(netUrl);
            File file = null;
    
    
            URL urlfile;
            InputStream inStream = null;
            OutputStream os = null;
            try {
                file = File.createTempFile("net_url", fileName);
                //下载
                urlfile = new URL(netUrl);
                inStream = urlfile.openStream();
                os = new FileOutputStream(file);
    
                int bytesRead = 0;
                byte[] buffer = new byte[8192];
                while ((bytesRead = inStream.read(buffer, 0, 8192)) != -1) {
                    os.write(buffer, 0, bytesRead);
                }
            } catch (Exception e) {
                log.error("远程图片获取错误:"+netUrl);
                e.printStackTrace();
            } finally {
                try {
                    if (null != os) {
                        os.close();
                    }
                    if (null != inStream) {
                        inStream.close();
                    }
    
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
    
            return file;
        }

    getNetUrlHttps

    这个方法就相对于要麻烦很多了,毕竟涉及到ssl,很多人再请求的时候绕不开ssl,这里可以通过代码进行处理

    SSLContext不需要其他包,使用java自带的,无需import
    /**
         * 下载文件到本地(支持https)
         *
         * @param fileUrl 远程地址
         * @throws Exception
         */
    
        public static File getNetUrlHttps(String fileUrl) {
            //对本地文件进行命名
            String file_name = StringUtils.reloadFile(fileUrl);
            File file = null;
    
            DataInputStream in = null;
            DataOutputStream out = null;
            try {
                file = File.createTempFile("net_url", file_name);
    
                SSLContext sslcontext = SSLContext.getInstance("SSL", "SunJSSE");
                sslcontext.init(null, new TrustManager[]{new X509TrustUtiil()}, new java.security.SecureRandom());
                URL url = new URL(fileUrl);
                HostnameVerifier ignoreHostnameVerifier = new HostnameVerifier() {
                    @Override
                    public boolean verify(String s, SSLSession sslsession) {
                        logger.warn("WARNING: Hostname is not matched for cert.");
                        return true;
                    }
                };
                HttpsURLConnection.setDefaultHostnameVerifier(ignoreHostnameVerifier);
                HttpsURLConnection.setDefaultSSLSocketFactory(sslcontext.getSocketFactory());
                HttpsURLConnection urlCon = (HttpsURLConnection) url.openConnection();
                urlCon.setConnectTimeout(6000);
                urlCon.setReadTimeout(6000);
                int code = urlCon.getResponseCode();
                if (code != HttpURLConnection.HTTP_OK) {
                    throw new Exception("文件读取失败");
                }
                // 读文件流
                in = new DataInputStream(urlCon.getInputStream());
                out = new DataOutputStream(new FileOutputStream(file));
                byte[] buffer = new byte[2048];
                int count = 0;
                while ((count = in.read(buffer)) > 0) {
                    out.write(buffer, 0, count);
                }
                out.close();
                in.close();
            } catch (Exception e) {
                log.error("远程图片获取错误:"+fileUrl);
                e.printStackTrace();
            } finally {
                try {
                    if (null != out) {
                        out.close();
                    }
                    if (null != in) {
                        in.close();
                    }
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
            }
    
            return file;
        }

    其中X509TrustUtiil的工具包

    import javax.net.ssl.X509TrustManager;
    import java.security.cert.CertificateException;
    import java.security.cert.X509Certificate;
    
    public class X509TrustUtiil implements X509TrustManager {
    
    	@Override
    	public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
    		// TODO Auto-generated method stub
    
    	}
    
    	@Override
    	public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
    		// TODO Auto-generated method stub
    
    	}
    
    	@Override
    	public X509Certificate[] getAcceptedIssuers() {
    		// TODO Auto-generated method stub
    		return null;
    	}
    
    }

    补充两个自己写的StringUtils工具类的两个方法

    /**
         * 重命名,UUIU
         *
         * @param oleFileName
         * @return
         */
        public static String reloadFile(String oleFileName) {
            oleFileName = getFileName(oleFileName);
            if (StringUtils.isEmpty(oleFileName)) {
                return oleFileName;
            }
            //得到后缀
            if (oleFileName.indexOf(".") == -1) {
                //对于没有后缀的文件,直接返回重命名
                return UniqId.getUid();
            }
            String[] arr = oleFileName.split("\\.");
            // 根据uuid重命名图片
            String fileName = UniqId.getUid() + "." + arr[arr.length - 1];
    
            return fileName;
        }
    
        /**
         * 把带路径的文件地址解析为真实文件名 /25h/upload/hc/1448089199416_06cc07bf-7606-4a81-9844-87d847f8740f.mp4 解析为 1448089199416_06cc07bf-7606-4a81-9844-87d847f8740f.mp4
         *
         * @param url
         */
        public static String getFileName(final String url) {
            if (StringUtils.isEmpty(url)) {
                return url;
            }
            String newUrl = url;
            newUrl = newUrl.split("[?]")[0];
            String[] bb = newUrl.split("/");
            String fileName = bb[bb.length - 1];
            return fileName;
        }

     

    这样就可以通过一个url将远程地址的文件转化为本地文件了,有疑问的留言

    展开全文
  • 文件上传到服务器并返回URL地址

    千次阅读 2020-06-23 16:54:41
    Java实现文件上传到服务器,并返回可访问的URL地址,本文以上传图片为例。 1.配置spring的配置文件,在配置文件中定义上传路径的根路径,通过@Value("${file.path}")在代码中使用 #文件上传根路径 file: path: D:/...
  • 解决HbuildX无法打开html文件的问题

    千次阅读 2020-12-23 15:35:51
    试过用各种方法,比如:打开防火墙允许hbuildx访问,设置chrome代理都没有用,如下:当浏览器设置了“为LAN使用代理服务器”是可能会导致浏览器访问网页,这是正常的网页都无法访问,不单单是hbuildx中打开的文件,...
  • * 删除服务上的文件 * @param filePath 路径 * @param fileName 文件名 * @return */ @PostMapping("/deleteServerFile") @ResponseBody public static boolean deleteServerFile(String filePath){ ...
  • 前端通过url预览pdf文件

    千次阅读 2019-08-27 13:11:14
    request.setAttribute("error", "附件已删除或不存在"); } InputStream in = null; OutputStream os = null; try { response.setContentType("application/pdf"); // 设置返回内容格式 in = new ...
  • 简单讲下cdn吧 CDN的全称是Content Delivery Network,及内容分发网络.其基本思路是尽可能避开互联网上有...联系了下运维,运维把我获取文件的ip放到服务器上从新推送了一次,再次访问之前的url,数据更新,问题解决
  • 文件下载url中存在../的情况

    千次阅读 2019-06-03 17:00:20
    废话不多说,上代码 import urllib2 import urllib url = ...req = urllib2.urlopen(url, timeout=60) try: urllib.urlretrieve(url, filePath) except Ex...
  • 上传指定url文件到阿里云oss

    千次阅读 2017-09-07 11:31:00
    好处是不用下载到本地,也不用删除本地文件。省事! 先下载阿里云官方代码 https://github.com/aliyun/aliyun-oss-csharp-sdk 引用其中的 aliyun-oss-sdk 项目 代码如下: string endpoint = "...
  • java删除linux文件的方式

    千次阅读 2019-09-04 10:50:34
     if(200==urlcon.getResponseCode()){//判断文件是否存在  InputStream doInfo = null;  InputStream errorInfo = null;  BufferedReader br = null;  Process process = null;  try {  String cmd = ...
  • 但未能成功,于是使用了window.location.href,结果删除功能确实实现了,但错操作后,页面总是会跳转到一个空页面上。 求问各位大神有什么办法,给个提示。谢谢! js代码: window.location.href = 'deleteFile?...
  • } } /** * 删除OSS中的文件 * * @param key 唯一key(在oss中的文件名字) */ public void delete(String key) { try { // 创建OSSClient实例。 OSS ossClient = new OSSClientBuilder().build(endpoint, ...
  • Springboot文件删除(图片删除)

    千次阅读 2019-11-15 15:40:48
    紧接上篇的文件添加,这篇写文件删除,还是以图片的操作为例。 文件上传和删除更应该算是javaSE的内容,用到的基本都是文件的操作。 首先就是控制类代码 //删除图片文件,只是删除文件,不删除数据库信息 @...
  • 在网上找了好多资料,最后总结下自己的实现方案,废话不多说,直接上代码 一、 第一种,后台服务器有静态资源... * 文件下载(from表单单文件下载) * @param url */ function downloadFileForm(url) { var file.
  • 大致情况:我用TP5.1和ajax想要实现图片上传的需求,开始我是把ajax写在html模板中的图片上传没有问题,后来考虑到代码规范的问题,不想把代码都写在...把该代码写在js文件中放在public/static 下引入后的url应该怎么改
  • js通过URL下载服务器文件(可行方法)

    万次阅读 热门讨论 2018-10-31 14:56:16
    本文讲述已知文件在服务器的地址,如何下载至本地 其他博客分享的一般是这两种 1.通过window.open window.open('https://1.1.1.1/test.txt') 2.通过get表单请求 var $form = $('&lt;form method="...
  • 【建站系列教程】6、.htaccess文件url重写规则-网页伪静态化如何创建.htaccess文件?.htaccess是什么htaccess语法教程 写在前面:大家好,我是热爱编程的小泽。 【建站系列教程】是我的亲身建站经历写给广大建站...
  • springboot 通过url地址访问项目内部文件 在application.properties的配置文件中加入: spring.resources.static-locations=classpath:/externalFil //可访问此文件夹下的所有内容(内部文件夹地址) spring....
  • Java根据指定的路径删除文件

    千次阅读 2020-07-12 11:41:15
    一、根据指定的路径删除文件 package com.hrtxn.ringtone.project.system.video.util; /** * 作者: yushuangyu * 时间: 2020年07月11日 17:34 * 描述: 删除视频文件 */ public class DelFile { /** * 删除...
  • SVN服务器中可以删除文件夹但无法删除文件:解决办法 找到任一台连接SVN的电脑客户端,然后打开TortoiseSVN Browser,打开以后输入正确的URL,如图所示: 输入正确的身份验证信息后,在文件目录中找到对应的文件 ...
  • ElementUI Upload上传 文件缩略图 删除

    千次阅读 2021-03-15 15:18:05
    ElementUI Upload上传 文件缩略图 删除 ElementUI 的 Upload上传 的 文件缩略图 部分,删除功能的实现没有写具体。在此补充一二: html: <el-form-item label="证件照片" prop="idPhoto"> <el-upload...
  • 有时候流明明已经关闭了,但是还是无法删除文件或者文件夹,提示被JVM占用等 public void download(String sourceUrl, String targetPathFile) { URL url = null; //从网络上下载一张图片 InputStream ...
  • 1、背景说明在数据库的设计上,我们经常会看到许多...合成一张表后,数据亮太大了,数据库无法承受。 问题1困扰我们的是,设计库设计的正向设计思想。我们在设计表的时候,在处理一对多的设计关系时,通常都会抽象出
  • - 功能:根据提供的URL下载网络文件 PS:其中有6个关键字,是实现该功能使用到的知识点,我在代码的后面做了必要的归纳和整理。 #define kReceivedTotal @"receivedTotal" #define kTotal @"total" #import ...
  • $("#jdzjz .esf").fileinput({ language: 'zh', //设置..., //上传controller映射的地址 deleteUrl: '#',//移除 &lt;c:if test="${appraInfo.esf!=null}"&gt; initialPreview: [ ...
  • 文件无法重命名文件删除文件

    千次阅读 2009-10-05 10:03:00
     提问者: liwenfeng5776 最佳答案:请说明你删除不掉的文件是什么~ 这种情况很常见,但是不太好解决~一般都有如下的解决办法~ 1、机器重启一下~或者结束exploer进程再重新建立 2、病毒造成,可以查杀一下病毒...
  • HttpClient 通过资源URL下载资源

    千次阅读 2019-12-05 16:13:04
    使用富文本编辑器写文章什么的,从第三方拷贝过来的图文,里面的资源内容都是第三方的,如果第三方删除该资源,导致该文章也无法访问,故需要把文章中的第三方资源通过http下载到本地服务器,永久保存。 用到了以下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 614,037
精华内容 245,614
关键字:

url文件无法删除