久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

SpringBoot實現單文件與多文件上傳

瀏覽:6日期:2023-03-09 16:54:17
目錄一、公共文件存儲代碼1.FileUploadUtils.java2.FileUtils.java3.MimeTypeUtils.java4.FileException.java5.FileNameLengthLimitExceededException.java6.FileSizeLimitExceededException.java7.InvalidExtensionException.java二、單文件上傳代碼三、多文件上傳代碼一、公共文件存儲代碼1.FileUploadUtils.java

package com.springcloud.blog.admin.util.file;/** * @description: 文件上傳工具類 * @author: youcong * @time: 2020/9/28 11:34 */import com.springcloud.blog.admin.exception.file.FileNameLengthLimitExceededException;import com.springcloud.blog.admin.exception.file.FileSizeLimitExceededException;import com.springcloud.blog.admin.exception.file.InvalidExtensionException;import com.springcloud.blog.admin.util.DateUtils;import com.springcloud.blog.admin.util.IdUtils;import com.springcloud.blog.admin.util.StringUtils;import org.apache.commons.fileupload.FileUploadBase;import org.apache.commons.io.FilenameUtils;import org.springframework.web.multipart.MultipartFile;import java.io.File;import java.io.IOException;public class FileUploadUtils { /** * 默認大小 50M */ public static final long DEFAULT_MAX_SIZE = 50 * 1024 * 1024; /** * 默認的文件名最大長度 100 */ public static final int DEFAULT_FILE_NAME_LENGTH = 100; /** * 默認上傳的地址 */ private static String defaultBaseDir = 'D://test//'; /** * 資源映射路徑 前綴 */ public static String resource_prefix = 'D://test//'; public static void setDefaultBaseDir(String defaultBaseDir) {FileUploadUtils.defaultBaseDir = defaultBaseDir; } public static String getDefaultBaseDir() {return defaultBaseDir; } /** * 以默認配置進行文件上傳 * * @param file 上傳的文件 * @return 文件名稱 * @throws Exception */ public static final String upload(MultipartFile file) throws IOException {try { return upload(getDefaultBaseDir(), file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);} catch (Exception e) { throw new IOException(e.getMessage(), e);} } /** * 文件上傳 * * @param baseDir 相對應用的基目錄 * @param file 上傳的文件 * @param allowedExtension 上傳文件類型 * @return 返回上傳成功的文件名 * @throws FileSizeLimitExceededException 如果超出最大大小 * @throws FileNameLengthLimitExceededException 文件名太長 * @throws IOException 比如讀寫文件出錯時 * @throws InvalidExtensionException 文件校驗異常 */ public static final String upload(String baseDir, MultipartFile file, String[] allowedExtension) throws FileUploadBase.FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException, InvalidExtensionException {int fileNamelength = file.getOriginalFilename().length();if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) { throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH);}assertAllowed(file, allowedExtension);String fileName = extractFilename(file);File desc = getAbsoluteFile(baseDir, fileName);file.transferTo(desc);String pathFileName = getPathFileName(baseDir, fileName);return pathFileName; } /** * 編碼文件名 */ public static final String extractFilename(MultipartFile file) {String fileName = file.getOriginalFilename();String extension = getExtension(file);fileName = DateUtils.datePath() + '/' + IdUtils.fastUUID() + '.' + extension;return fileName; } private static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException {File desc = new File(uploadDir + File.separator + fileName);if (!desc.getParentFile().exists()) { desc.getParentFile().mkdirs();}if (!desc.exists()) { desc.createNewFile();}return desc; } private static final String getPathFileName(String uploadDir, String fileName) throws IOException {int dirLastIndex = defaultBaseDir.length() + 1;String currentDir = StringUtils.substring(uploadDir, dirLastIndex);String pathFileName = resource_prefix + '/' + currentDir + '/' + fileName;return pathFileName; } /** * 文件大小校驗 * * @param file 上傳的文件 * @return * @throws FileSizeLimitExceededException 如果超出最大大小 * @throws InvalidExtensionException */ public static final void assertAllowed(MultipartFile file, String[] allowedExtension) throws FileSizeLimitExceededException, InvalidExtensionException {long size = file.getSize();if (DEFAULT_MAX_SIZE != -1 && size > DEFAULT_MAX_SIZE) { throw new FileSizeLimitExceededException(DEFAULT_MAX_SIZE / 1024 / 1024);}String fileName = file.getOriginalFilename();String extension = getExtension(file);if (allowedExtension != null && !isAllowedExtension(extension, allowedExtension)) { if (allowedExtension == MimeTypeUtils.IMAGE_EXTENSION) {throw new InvalidExtensionException.InvalidImageExtensionException(allowedExtension, extension,fileName); } else if (allowedExtension == MimeTypeUtils.FLASH_EXTENSION) {throw new InvalidExtensionException.InvalidFlashExtensionException(allowedExtension, extension,fileName); } else if (allowedExtension == MimeTypeUtils.MEDIA_EXTENSION) {throw new InvalidExtensionException.InvalidMediaExtensionException(allowedExtension, extension,fileName); } else if (allowedExtension == MimeTypeUtils.VIDEO_EXTENSION) {throw new InvalidExtensionException.InvalidVideoExtensionException(allowedExtension, extension,fileName); } else {throw new InvalidExtensionException(allowedExtension, extension, fileName); }} } /** * 判斷MIME類型是否是允許的MIME類型 * * @param extension * @param allowedExtension * @return */ public static final boolean isAllowedExtension(String extension, String[] allowedExtension) {for (String str : allowedExtension) { if (str.equalsIgnoreCase(extension)) {return true; }}return false; } /** * 獲取文件名的后綴 * * @param file 表單文件 * @return 后綴名 */ public static final String getExtension(MultipartFile file) {String extension = FilenameUtils.getExtension(file.getOriginalFilename());if (StringUtils.isEmpty(extension)) { extension = MimeTypeUtils.getExtension(file.getContentType());}return extension; }}2.FileUtils.java

package com.springcloud.blog.admin.util.file;import javax.servlet.http.HttpServletRequest;import java.io.*;import java.net.URLEncoder;/** * 文件處理工具類 * * @author youcong */public class FileUtils extends org.apache.commons.io.FileUtils { public static String FILENAME_PATTERN = '[a-zA-Z0-9_-|.u4e00-u9fa5]+'; /** * 輸出指定文件的byte數組 * * @param filePath 文件路徑 * @param os 輸出流 * @return */ public static void writeBytes(String filePath, OutputStream os) throws IOException {FileInputStream fis = null;try { File file = new File(filePath); if (!file.exists()) {throw new FileNotFoundException(filePath); } fis = new FileInputStream(file); byte[] b = new byte[1024]; int length; while ((length = fis.read(b)) > 0) {os.write(b, 0, length); }} catch (IOException e) { throw e;} finally { if (os != null) {try { os.close();} catch (IOException e1) { e1.printStackTrace();} } if (fis != null) {try { fis.close();} catch (IOException e1) { e1.printStackTrace();} }} } /** * 刪除文件 * * @param filePath 文件 * @return */ public static boolean deleteFile(String filePath) {boolean flag = false;File file = new File(filePath);// 路徑為文件且不為空則進行刪除if (file.isFile() && file.exists()) { file.delete(); flag = true;}return flag; } /** * 文件名稱驗證 * * @param filename 文件名稱 * @return true 正常 false 非法 */ public static boolean isValidFilename(String filename) {return filename.matches(FILENAME_PATTERN); } /** * 下載文件名重新編碼 * * @param request 請求對象 * @param fileName 文件名 * @return 編碼后的文件名 */ public static String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException {final String agent = request.getHeader('USER-AGENT');String filename = fileName;if (agent.contains('MSIE')) { // IE瀏覽器 filename = URLEncoder.encode(filename, 'utf-8'); filename = filename.replace('+', ' ');} else if (agent.contains('Firefox')) { // 火狐瀏覽器 filename = new String(fileName.getBytes(), 'ISO8859-1');} else if (agent.contains('Chrome')) { // google瀏覽器 filename = URLEncoder.encode(filename, 'utf-8');} else { // 其它瀏覽器 filename = URLEncoder.encode(filename, 'utf-8');}return filename; }}3.MimeTypeUtils.java

package com.springcloud.blog.admin.util.file;/** * @description: * @author: youcong * @time: 2020/9/28 11:37 */public class MimeTypeUtils { public static final String IMAGE_PNG = 'image/png'; public static final String IMAGE_JPG = 'image/jpg'; public static final String IMAGE_JPEG = 'image/jpeg'; public static final String IMAGE_BMP = 'image/bmp'; public static final String IMAGE_GIF = 'image/gif'; public static final String[] IMAGE_EXTENSION = {'bmp', 'gif', 'jpg', 'jpeg', 'png'}; public static final String[] FLASH_EXTENSION = {'swf', 'flv'}; public static final String[] MEDIA_EXTENSION = {'swf', 'flv', 'mp3', 'wav', 'wma', 'wmv', 'mid', 'avi', 'mpg', 'asf', 'rm', 'rmvb'}; public static final String[] VIDEO_EXTENSION = {'mp4', 'avi', 'rmvb'}; public static final String[] DEFAULT_ALLOWED_EXTENSION = { // 圖片 'bmp', 'gif', 'jpg', 'jpeg', 'png', // word excel powerpoint 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'html', 'htm', 'txt', // 壓縮文件 'rar', 'zip', 'gz', 'bz2', // 視頻格式 'mp4', 'avi', 'rmvb', // pdf 'pdf'}; public static String getExtension(String prefix) {switch (prefix) { case IMAGE_PNG:return 'png'; case IMAGE_JPG:return 'jpg'; case IMAGE_JPEG:return 'jpeg'; case IMAGE_BMP:return 'bmp'; case IMAGE_GIF:return 'gif'; default:return '';} }}4.FileException.java

package com.springcloud.blog.admin.exception.file;import com.springcloud.blog.admin.exception.BaseException;/** * @description: 文件信息異常類 * @author: youcong * @time: 2020/9/28 11:41 */public class FileException extends BaseException { private static final long serialVersionUID = 1L; public FileException(String code, Object[] args) {super('file', code, args, null); }}5.FileNameLengthLimitExceededException.java

package com.springcloud.blog.admin.exception.file;/** * @description:文件名稱超長限制異常類 * @author: youcong * @time: 2020/9/28 11:41 */public class FileNameLengthLimitExceededException extends FileException { private static final long serialVersionUID = 1L; public FileNameLengthLimitExceededException(int defaultFileNameLength) {super('upload.filename.exceed.length', new Object[]{defaultFileNameLength}); }}6.FileSizeLimitExceededException.java

package com.springcloud.blog.admin.exception.file;/** * @description: 文件名大小限制異常類 * @author: youcong * @time: 2020/9/28 11:42 */public class FileSizeLimitExceededException extends FileException { private static final long serialVersionUID = 1L; public FileSizeLimitExceededException(long defaultMaxSize) {super('upload.exceed.maxSize', new Object[]{defaultMaxSize}); }}7.InvalidExtensionException.java

package com.springcloud.blog.admin.exception.file;/** * @description: 文件上傳錯誤異常類 * @author: youcong * @time: 2020/9/28 11:42 */import org.apache.commons.fileupload.FileUploadException;import java.util.Arrays;public class InvalidExtensionException extends FileUploadException { private static final long serialVersionUID = 1L; private String[] allowedExtension; private String extension; private String filename; public InvalidExtensionException(String[] allowedExtension, String extension, String filename) {super('filename : [' + filename + '], extension : [' + extension + '], allowed extension : [' + Arrays.toString(allowedExtension) + ']');this.allowedExtension = allowedExtension;this.extension = extension;this.filename = filename; } public String[] getAllowedExtension() {return allowedExtension; } public String getExtension() {return extension; } public String getFilename() {return filename; } public static class InvalidImageExtensionException extends InvalidExtensionException {private static final long serialVersionUID = 1L;public InvalidImageExtensionException(String[] allowedExtension, String extension, String filename) { super(allowedExtension, extension, filename);} } public static class InvalidFlashExtensionException extends InvalidExtensionException {private static final long serialVersionUID = 1L;public InvalidFlashExtensionException(String[] allowedExtension, String extension, String filename) { super(allowedExtension, extension, filename);} } public static class InvalidMediaExtensionException extends InvalidExtensionException {private static final long serialVersionUID = 1L;public InvalidMediaExtensionException(String[] allowedExtension, String extension, String filename) { super(allowedExtension, extension, filename);} } public static class InvalidVideoExtensionException extends InvalidExtensionException {private static final long serialVersionUID = 1L;public InvalidVideoExtensionException(String[] allowedExtension, String extension, String filename) { super(allowedExtension, extension, filename);} }}

8.BaseException.java

package com.springcloud.blog.admin.exception;/** * 基礎異常 * * @author youcong */public class BaseException extends RuntimeException { private static final long serialVersionUID = 1L; /** * 所屬模塊 */ private String module; /** * 錯誤碼 */ private String code; /** * 錯誤碼對應的參數 */ private Object[] args; /** * 錯誤消息 */ private String defaultMessage; public BaseException(String module, String code, Object[] args, String defaultMessage) {this.module = module;this.code = code;this.args = args;this.defaultMessage = defaultMessage; } public BaseException(String module, String code, Object[] args) {this(module, code, args, null); } public BaseException(String module, String defaultMessage) {this(module, null, null, defaultMessage); } public BaseException(String code, Object[] args) {this(null, code, args, null); } public BaseException(String defaultMessage) {this(null, null, null, defaultMessage); } public String getModule() {return module; } public String getCode() {return code; } public Object[] getArgs() {return args; } public String getDefaultMessage() {return defaultMessage; }}二、單文件上傳代碼

@PostMapping('/post/uploadFile')@ApiOperation('文章上傳特色圖片')public ResponseBaseDTO<String> uploadFile(@RequestParam('file') MultipartFile file) { logger.info('/post/uploadFile'); try {String fileUrl = FileUploadUtils.upload(file);if (fileUrl != null) { return ResponseBaseDTO.createSuccResp(fileUrl);}return ResponseBaseDTO.createFailResp(fileUrl); } catch (Exception e) {logger.error('/post/uploadFile', e);return ResponseBaseDTO.createFailResp(e.getMessage()); }}三、多文件上傳代碼

@PostMapping('/batchImportsUsers')@ApiOperation('批量導入用戶數據小時')public ResponseBaseDTO<String> batchImportsUsers(MultipartFile[] uploadFiles) { if (uploadFiles.length > 0) {for (int i = 0; i < uploadFiles.length; i++) { try {importUserExcelData(uploadFiles[i]); } catch (Exception e) {e.printStackTrace(); }}return ResponseBaseDTO.createSuccResp(); } return ResponseBaseDTO.createFailResp(e.getMessage());}

以上就是SpringBoot實現單文件與多文件上傳的詳細內容,更多關于SpringBoot文件上傳的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
主站蜘蛛池模板: 亚洲精品一区二区网址 | 中文字幕高清视频 | 日韩一区二区在线视频 | 国产精品大片在线观看 | 午夜精品影院 | 亚洲欧美日韩精品久久亚洲区 | 国产一区 | 伊人网网站 | 亚洲精品一区在线观看 | 久久9久久 | 一区二区av | 久久午夜电影 | 欧美一区免费 | 91电影院 | 欧美日韩在线二区 | 日韩在线免费 | 欧洲一区二区在线观看 | 国产一区二区视频免费看 | 国产在线高清 | 国产精品久久久久久久久久久小说 | 日韩成人av在线 | 久久成人一区 | 亚洲欧洲精品一区二区三区 | 久草电影网 | 国产精品45p | 中文字幕自拍偷拍 | 免费av大全 | www.男人天堂 | 国产a一三三四区电影 | 国产成人久久精品一区二区三区 | 国产精品欧美一区二区三区不卡 | 国产精品大片 | 精品久久中文字幕 | 亚洲h视频 | 日韩精品av一区二区三区 | 色综合天天综合网国产成人网 | 国产综合一区二区 | 中文成人在线 | 欧美三级网址 | 神马电影午夜 | 免费观看av毛片 | 一级毛片电影 | 欧美日韩国产高清 | 91欧美在线 | 日韩中文字幕在线 | 免费一区二区三区 | 国产欧美日韩中文字幕 | 免费国产成人 | 亚洲一级毛片 | www.成人国产 | 国精产品99永久一区一区 | 欧美福利在线 | 99国产精品一区 | 成人在线国产 | 91麻豆产精品久久久久久 | 亚洲国产精品福利 | 久久麻豆视频 | 伊人av超碰久久久麻豆 | 国产在线一区观看 | 精品国产乱码一区二区三区a | 亚洲国产精品久久久久秋霞不卡 | 中文av在线免费观看 | av中文字幕在线观看 | 日韩欧美在线视频观看 | 国产综合亚洲精品一区二 | 欧美 | 亚洲精品久久久久久下一站 | 久久av资源 | 日韩视频国产 | 麻豆国产免费 | 久久九九精品久久 | 一级欧美日韩 | k8久久久一区二区三区 | 日韩视频一二 | 国产网址| 黄色一级网址 | 国产v片 | 免费国产成人 | 久久精品一区二区三区四区 | 最新av在线网址 | 成人激情视频在线观看 | 五月天电影网 | 久草免费在线视频 | 久久人爽 | 成人中文视频 | av一二 | 色婷婷影院| 亚洲国产精品久久久 | 日韩精品免费视频 | 精品久久一二三区 | 亚洲热av | 欧美视频在线播放 | 亚洲成人一区二区三区 | 国产成人精品一区一区一区 | 高清在线一区二区 | 日韩精品1区 | 国产人体视频 | 日韩在线资源 | 久久亚洲美女 | 亚洲aⅴ天堂av在线电影软件 | 亚洲小视频网站 | www.麻豆 | 欧美成年视频 | 国产精品久久久久一区二区三区 | 一区二区三区日韩在线 | 中文在线一区 | 国产精品永久免费自在线观看 | 国产毛片a级 | 国产看片网站 | 国产在线网 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 欧美精品一区二区在线观看 | 亚洲蜜臀av乱码久久精品蜜桃 | 国产日韩精品在线观看 | 亚洲激情av| 久久国产精品久久久久久 | 亚洲国产在| 久久久久av | 国产最新精品视频 | 性人久久久 | 毛片网站大全 | 日本在线一区二区 | 九热精品 | 成人精品视频 | 免费福利视频一区二区三区 | 99在线精品视频 | 久久精品一区二区三区不卡牛牛 | 国产一区二区精品在线观看 | 亚洲精品免费视频 | 亚洲精品中文字幕乱码无线 | 五月天婷婷社区 | 日本高清视频一区二区三区 | 精品亚洲一区二区三区四区五区 | 国产一区二区三区久久久久久久久 | 天天操天天碰 | 久久网一区二区三区 | 在线视频第一页 | 日本a视频 | 午夜精品视频 | 亚洲精品成人av | 久久99国产精品 | 久久极品 | 国产精品亚洲第一区在线暖暖韩国 | 久久国产精品视频 | 夜添久久精品亚洲国产精品 | 精品一区二区国产 | av一级久久 | 亚洲综合色视频在线观看 | 欧美色视| 亚洲一区免费观看 | 91麻豆精品国产91久久久久久 | 国产精品99久久免费观看 | 色婷婷综合在线 | 国产一区二区精品在线 | 美女久久久 | www.一区| 亚洲不卡| 一级高清 | 国产一区二区影院 | 黄色片免费看 | 99精品国产一区二区 | 成人久久久精品乱码一区二区三区 | 午夜精品久久久久99蜜 | 成人国产网站 | 亚洲国产精品福利 | av在线播放国产 | 亚洲精品在线播放 | 亚洲黄色免费 | 国产精品一区二区在线 | 一区二区三区自拍 | 神马久久久久久久 | 日韩激情网 | 中文字字幕一区二区三区四区五区 | 色综合激情 | 国内精品视频在线观看 | 一色桃子av一区二区免费 | 一区二区三区久久久久久 | 国产伦精品一区二区三区在线 | 欧美一级黄色片免费看 | 韩日一区 | 欧美一区二区三区在线观看视频 | 国产91亚洲精品 | 免费观看亚洲 | 成年人网站在线免费观看 | 玖玖操 | 亚洲免费在线观看视频 | 亚洲视频一区在线 | 日韩在线播放一区 | 日韩高清在线一区 | 久久国产精品一区 | 亚洲网站在线观看 | 免费av片在线 | 黄频免费在线观看 | 免费黄色电影在线观看 | 国产欧美日韩在线 | 成人在线视频网站 | 欧洲美女7788成人免费视频 | 午夜在线视频 | 日韩色av | 国产精品欧美一区二区三区不卡 | 久草天堂| 中文字幕视频一区 | 欧美一区二区三区在线看 | 亚洲成av人片在线观看无码 | 黄色一级片看看 | 婷婷久久综合九色综合绿巨人 | 精品免费国产一区二区三区四区 | 欧美日韩视频第一页 | 中文字幕在线看 | 日本三级在线网站 | 国产成人99久久亚洲综合精品 | 在线观看免费黄色 | 99精品欧美一区二区蜜桃免费 | 亚洲狠狠久久综合一区77777 | 亚洲a网| 一区二区三区在线免费播放 | 97精品 | 色性视频| 日本三级在线视频 | 欧美视频在线一区 | 久久成人精品一区二区三区 | 九九热精品视频 | 高清视频一区二区三区 | 日韩欧美网 | 在线免费国产 | 国产精品久久久久久久天堂 | 亚洲怡红院在线观看 | 欧美成人精品一区二区三区在线看 | 91av视频在线观看 | 密色视频 | 成人在线国产 | 久久国产综合 | 亚洲三级视频 | 黄视频网站免费看 | 日韩在线视频一区 | 亚洲每日更新 | 一级毛片免费视频 | 久草在线资源福利站 | 福利91| 成人a在线 | 国产精品久久一区二区三区 | 欧美1区2区3区 | 日韩久久网 | 男人的天堂亚洲 | 欧美不卡一区二区三区 | 毛片av片 | 日韩在线视频一区 | 精品国产18久久久久久二百 | 91传媒在线播放 | a毛片毛片av永久免费 | 日韩国产一区 | 成人欧美一区二区三区黑人孕妇 | 日韩成人在线看 | www.亚洲 | 国产精品高潮呻吟 | 色婷婷一二三 | 精品中文字幕一区二区 | 韩国精品视频在线观看 | 99久久久| 国产高潮好爽受不了了夜色 | 欧美福利网 | 欧美xxxx黑人又粗又长 | 午夜成人免费视频 | 欧美成人一区二区三区片免费 | 国产在线中文字幕 | 欧美全黄 | 欧洲国产伦久久久久久久 | 成人精品一区二区三区中文字幕 | 天天爽夜夜爽夜夜爽精品视频 | 亚洲综合区| 日日操狠狠操 | 亚洲国内精品 | 国产98色在线 | 日韩 | 国产视频一区在线 | 伊人最新网址 | 日韩一区二区在线观看视频 | 久久色av| 午夜窝窝 | 精品九九 | 狠狠夜夜| 日韩欧美在线观看 | 精品亚洲永久免费精品 | 97爱爱视频 | 日韩人体在线 | 日日操夜夜添 | 999视频在线 | 国产网站在线 | 91小视频网站 | 国产精品国产精品 | 九九九久久久 | 久久九九精品久久 | 亚洲狠狠爱 | 91春色| 一二三精品区 | 国产在线视频在线 | 精品二区| 久久久国产精品免费 | 亚洲一区在线免费观看 | 超碰8 | 久久婷婷色 | 极品久久| 国产精品久久久久久久久久久久久 | 亚洲国产精品99久久久久久久久 | 亚洲午夜精品在线观看 | 国产视频自拍一区 | 在线观看毛片网站 | 99久久久无码国产精品 | 欧美日本韩国一区二区三区 | 国产成人欧美一区二区三区的 | 九九九久久久 | 亚洲精品乱码久久久久久 | 久久福利 | 欧美日韩精品一区二区三区 | 日本一区二区三区免费观看 | 97国产一区二区精品久久呦 | 欧美中文日韩 | 国产精品片aa在线观看 | 伊人网视频在线观看 | 中文字幕精品一区二区三区精品 | 中文字幕免费视频观看 | 亚洲国产精品成人综合色在线婷婷 | 美日韩精品| 欧美国产激情 | 第一福利丝瓜av导航 | 欧美自拍视频在线 | 日韩91| 日韩一区二区三区四区五区 | 日本高清中文字幕 | 久久久久国产成人精品亚洲午夜 | 亚洲精品乱码久久久久久久 | 黄色手机在线观看 | 欧美一区2区三区4区公司二百 | 久久精品不卡 | 在线视频a | 亚洲视频在线观看免费 | 欧美在线小视频 | 大象视频成人在线观看 | 久久亚洲天堂 | 色婷婷一区二区三区四区 | 日本一级中文字幕久久久久久 | 性色在线视频 | 一级在线播放 | 久久麻豆 | 亚洲品质自拍视频网站 | 97国产精品视频人人做人人爱 | 五月天在线婷婷 | 国产成人 综合 亚洲 | a级在线| 久久亚洲综合 | 亚洲天堂一区二区三区 | 欧美成人综合视频 | 国产精品1区二区 | 成人久久18免费观看 | 国产精品一区三区 | 互换娇妻呻吟hd中文字幕 | 久草在线 | 久久99精品久久久久婷婷暖91 | 国产欧美综合一区二区三区 | av午夜电影 | 爱爱视频网站 | 欧美日韩国产免费一区二区三区 | 日韩av中文在线 | 国产欧美精品一区二区三区四区 | 中文字幕日韩一区 | 亚洲激情在线 | 久久久久中文 | 国产老女人精品毛片久久 | 亚洲精品乱码久久久久久金桔影视 | 日本欧美国产 | 久久精品欧美 | 国产精品乱码一区二区三区 | 亚洲精品女优 | 欧美激情第1页 | 成人午夜在线 | 国产精品久久综合 | 九九热免费精品视频 | 狠狠草视频 | 色香蕉视频 | 国产精品一区免费在线观看 | 日韩精品在线一区 | 男女精品 | 日韩一区二区在线观看 | 亚洲精品乱码久久久久久麻豆不卡 | 久久精品视频免费看 | 欧美日韩电影一区二区三区 | 中文字幕乱码亚洲精品一区 | 国产最新网址 | 91在线视频在线 | 成人精品久久 | 北条麻妃99精品青青久久 | 99国内精品久久久久久久 | 欧美日在线 | 一区二区手机在线 | 狠狠夜夜 | 无码日韩精品一区二区免费 | 日韩成人高清视频 | 91精品国产色综合久久不卡98口 | 色天天综合久久久久综合片 | 国产黄网 | 久久国产一区视频 | 高清久久 | 国产视频一区二区在线 | 亚洲欧美日韩在线一区 | 蜜桃免费一区二区三区 | 免费一二二区视频 | 中文字幕日韩视频 | 日日日日干干干干 | 特黄一级 | 欧美一级性 | 久久精品色欧美aⅴ一区二区 | 欧美在线高清 | 男女羞羞视频网站 | 一区二区三区在线播放 | 国产99久久精品一区二区永久免费 | 国产精品不卡 | 国产成人在线视频 | 精久久| 在线免费观看一区 | 亚洲系列| 欧美国产在线观看 | 亚洲高清中文字幕 | 在线视频日韩 | 亚洲综合影院 | 久久这里精品 | 亚洲成人一区二区三区 | 亚洲国产成人91精品 | t66y最新地址一地址二69 | 精品国产乱码久久久久久88av | 日韩精品免费看 | 欧美日韩国产91 | 欧美国产日韩在线 | av中文字幕第一页 | 免费观看成人毛片 | 精品成人久久 | 在线观看视频一区二区 | 精品美女在线 | 精品国产91乱码一区二区三区 | 依人成人综合网 | 亚洲高清视频在线 | 99热手机在线观看 | 日本二区| 99国产精品久久久 | 国产精品福利在线观看 | 91精品国产综合久久久蜜臀图片 | 久久99国产精品久久99果冻传媒 | av在线大全 | 久久av综合网 | 毛片av在线播放 | 国产精品美女久久久久久久久久久 | 国产精品成人网 | 97碰碰碰 | 中文字幕婷婷 | 亚洲一区二区三区四区五区中文 | 日日爱999| av不卡电影在线观看 | 成人午夜电影在线观看 | 黄片毛片在线观看 | av在线一区二区 | 91久久精品日日躁夜夜躁国产 | 毛片在线免费 | 精品欧美日韩 | 久久久久久久国产 | 午夜精品久久久 | 欧美激情国产日韩精品一区18 | 日韩欧美国产精品 | 久久久久久国产 | 免费观看亚洲 | 三级av网站| 毛片免费看 | 成年人免费看片 | 久久久亚洲 | 精品欧美乱码久久久久久 | 欧美一区二区三区黄 | 99热在线播放 | 亚洲欧美日韩在线一区 | 免费成人小视频 | 亚洲午夜电影在线 | 日韩精品一区二区三区四区五区 | 国产成人精品免高潮在线观看 | 成人黄色在线观看 | 欧美a√ | 久久免费99精品久久久久久 | 热久久久 | 伊人天天操 | 日韩精品中文字幕在线观看 | 国产精品二区三区 | 蜜桃精品视频在线 | 99精品欧美一区二区三区综合在线 | 欧美日韩在线视频一区 | 免费看91 | 日本黄色大片免费 | 国产毛片视频 | 国产精品成人3p一区二区三区 | 日日干天天操 | 一区二区三区四区免费观看 | 亚洲精品国产二区 | 91精品国产色综合久久不卡98 | 久久中文在线观看 | 久久人 | 免费看h | 欧美精品一区二区在线观看 | 婷婷五月在线视频 | 可以免费观看的av | 一级大片av | 国产精品色婷婷亚洲综合看 | 久久久久综合 | 国产精品一码二码三码在线 | 97视频在线免费观看 | 午夜黄色影院 | 欧美成人三区 | 超级黄色一级片 | 中文在线播放 | 亚洲视频在线免费观看 | 国产毛片av | 七七婷婷婷婷精品国产 | 亚洲欧洲在线观看 | 91精品国产乱码久久久久久久久 | 毛片视频观看 | 久久99国产精品久久99果冻传媒 | 午夜午夜精品一区二区三区文 | 欧美色综合一区二区三区 | 精品av| 精品三级在线观看 | 国产精品久久久久久久 | 看亚洲a级一级毛片 | 久久综合九九 | 欧美电影一区 | k8久久久一区二区三区 | 国产九九精品视频 | 黄色一级大片在线免费看产 | www.日韩系列 | www.99久久久 | 久久久99久久久国产自输拍 | 亚洲视频一区二区三区 | 日本xxww视频免费 | 欧美精品一区二区三区在线播放 | 日韩免费在线 | 成人av网页| 性视频网站免费 | 国产黄色大片网站 | 久久久久久久久久久久久久av | 国产高清视频 | 日本欧美在线 | 日本精品二区 | 欧美成人免费 | 成人av高清 | 精品无码久久久久国产 | 成人av小说 | 在线亚洲一区 | 九九热热九九 | 91色在线观看 | 国产高清一区二区 | 国产羞羞视频 | 麻豆色呦呦 | 国产精品视频一区二区三区不卡 | 免费精品视频 | 免费av在线网 | 99精品一区二区三区 | 免费观看羞羞视频网站 | 在线亚洲人成电影网站色www | 91久久| 亚洲视频一区在线播放 | 中文字幕一区二区三区四区不卡 | 欧美日韩中文字幕在线播放 | 国产精品第一国产精品 | 国产情侣小视频 | 国产乱码精品一区二区三区忘忧草 | 91免费在线视频 | 韩国av一区二区 | 综合久久网 | 欧美精品不卡 | 九九热在线免费视频 | 插插射啊爱视频日a级 | 精品亚洲一区二区三区四区五区 | 一区二区毛片 | 中文一区二区 | 一区二区三区免费网站 | 综合伊人 | 国产在线观看高清 | 欧美视频免费在线 | 久久99精品久久久久久久青青日本 | 精品久久久久久久久久久久 | 久久涩| 男人天堂中文字幕 | 九九热有精品 | 九九色综合 | 国产日韩av在线 | 九色一区二区 | 亚洲国产精品va在线看黑人 | 成人免费一区二区三区视频网站 | 久久婷婷国产麻豆91天堂 | 国产一区二区三区久久久久久 | 91视频爱爱 | 男人视频网站 | 亚洲精品一二三 | 亚洲国产成人精品久久 | 国产情侣av自拍 | 亚洲蜜臀av乱码久久精品蜜桃 | 亚洲 中文 欧美 日韩 在线观看 | 男人的天堂免费 | 亚洲狠狠爱一区二区三区 | 国产一区二区日韩 | 成人在线免费视频 | 欧美日韩国产一区二区三区在线观看 | 龙珠z普通话国语版在线观看 | 久久精品亚洲一区二区 | 国产视频一区二区 | 久99视频 | 日韩蜜桃| 日本在线视频观看 | 亚洲天天干 | 中文字幕色 | www.av在线 | 在线视频二区 | 777777777亚洲妇女|