Jfinal版阿里云OSS文件上传

来源:互联网 发布:笔记本电脑网络不可用 编辑:程序博客网 时间:2024/05/22 09:59
    /**     * 阿里云文件上传Jfinal,此方法是页面上传的url,写在controller下     * @throws Exception     */    public void AliOSS() throws Exception{        String fileType="images";        HashMap<String, String> extMap = new HashMap<String, String>();        extMap.put("images", "gif,jpg,jpeg,png,bmp");        extMap.put("flash", "swf,flv");        extMap.put("media", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb");        extMap.put("file", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2");        FilePart filePart= FileUtil.fileuploads(getRequest());        String fileExt = filePart.getFileName().substring(filePart.getFileName().lastIndexOf(".") + 1).toLowerCase();        String dirName="";        if(Arrays.<String>asList(extMap.get(fileType).split(",")).contains(fileExt)){            dirName=fileType;            String fileUrl=FileUtil.AliOSSUpload(filePart.getInputStream(),dirName+"/"+filePart.getFileName());            renderJson(fileUrl);        }else{            renderJavascript("alert('文件格式不允许!')");        }    }

获取文件数据流,方法写在FileUtil工具类里

 /**     * HttpServletRequest获取http的数据流     * @param r     * @return     */    public static FilePart fileuploads(HttpServletRequest r)    {        boolean flag=false;        MultipartParser mp;        try {            mp = new MultipartParser(r, 52428800, false, false, "UTF-8");            Part part = null;            while ((part = mp.readNextPart()) != null) {                String name = part.getName();                if (part.isFile())                {                    FilePart filePart = (FilePart) part;                    return  filePart;                }            }        } catch (IOException e) {            e.printStackTrace();            return null;        }        return null;    }

/**
* 调用阿里云OSS sdk
* @param inputStream
* @param filePath
* @return
*/
public static String AliOSSUpload(InputStream inputStream, String filePath){

    String accessid= "******";    String accesskey= "*******";    String host = "http://image.yuming.cn";    // endpoint以杭州为例,其它region请按实际情况填写    /*String endpoint = "oss-cn-shenzhen-internal.aliyuncs.com";*/    String endpoint ="oss-cn-shenzhen.aliyuncs.com";

// accessKey请登录https://ak-console.aliyun.com/#/查看
String accessKeyId = accessid;
String accessKeySecret = accesskey;
// 创建OSSClient实例
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// 上传,penderie为Bucket名,filePath为在Bucket下的路径,包括文件夹和文件名,imagse/0001.jpg
ossClient.putObject(“penderie”,filePath ,inputStream);
// 关闭client
ossClient.shutdown();
return “http://penderie.oss-cn-shenzhen.aliyuncs.com/“+filePath;
}

1 0