日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

分享一个文件上传工具类

發(fā)布時間:2023/12/18 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分享一个文件上传工具类 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文件上傳狀態(tài)枚舉類:

View Code 1 package com.hoo.enums; 2 3 4 5 /** 6 7 * <b>function:</b> 文件上傳狀態(tài) 8 9 * @package com.hoo.enums 10 11 * @fileName UploadState.java 12 13 * @createDate 2010-10-11 下午12:18:14 14 15 * @author hoojo 16 17 */ 18 19 public enum UploadState { 20 21 UPLOAD_SUCCSSS(0, "上傳文件成功!"), 22 23 UPLOAD_FAILURE(1, "上傳文件失敗!"), 24 25 UPLOAD_TYPE_ERROR(2, "上傳文件類型錯誤!"), 26 27 UPLOAD_OVERSIZE(3, "上傳文件過大!"), 28 29 UPLOAD_ZEROSIZE(4, "上傳文件為空!"), 30 31 UPLOAD_NOTFOUND(5, "上傳文件路徑錯誤!"); 32 33 34 35 private String state; 36 37 private int flag; 38 39 public String getState() { 40 41 return this.state; 42 43 } 44 45 46 47 public int getFlag() { 48 49 return this.flag; 50 51 } 52 53 UploadState(int flag, String state) { 54 55 this.state = state; 56 57 this.flag = flag; 58 59 } 60 61 }

文件上傳工具類code:

View Code 1 package com.hoo.util; 2 3 4 5 import java.io.File; 6 7 import java.io.FileInputStream; 8 9 import java.io.FileNotFoundException; 10 11 import java.io.FileOutputStream; 12 13 import java.io.IOException; 14 15 import java.io.InputStream; 16 17 import java.text.SimpleDateFormat; 18 19 import java.util.Date; 20 21 import java.util.Random; 22 23 import java.util.UUID; 24 25 import org.apache.commons.io.FileUtils; 26 27 import com.hoo.enums.UploadState; 28 29 30 31 /*** 32 33 * <b>function:</b> 文件上傳工具類 34 35 * @author hoojo 36 37 * @createDate Oct 9, 2010 11:12:47 PM 38 39 * @file UploadFileUtils.java 40 41 * @package com.hoo.util 42 43 * @blog http://blog.csdn.net/IBM_hoojo 44 45 * @email hoojo_@126.com 46 47 * @version 1.0 48 49 */ 50 51 public abstract class UploadFileUtils { 52 53 54 55 //上傳文件保存路徑 56 57 public static String path = "/upload/"; 58 59 //定義可以上傳文件的后綴數(shù)組,默認(rèn)"*",代表所有 60 61 public static String[] filePostfixs = { "*" }; 62 63 public static String[] typeImages = { "gif", "jpeg", "png", "jpg", "tif", "bmp" }; 64 65 public static String[] typeOthers = { "html", "htm", "doc", "xls", "txt", "zip", "rar", "pdf", "cll" }; 66 67 68 69 //上傳文件的最大長度 70 71 public static long maxFileSize = 1024 * 1024 * 1024 * 2L;//2G 72 73 //一次讀取多少字節(jié) 74 75 public static int bufferSize = 1024 * 8; 76 77 78 79 private final static void init() { 80 81 if (bufferSize > Integer.MAX_VALUE) { 82 83 bufferSize = 1024 * 8; 84 85 } else if (bufferSize < 8) { 86 87 bufferSize = 8; 88 89 } 90 91 if (maxFileSize < 1) { 92 93 maxFileSize = 1024 * 1024 * 1024 * 2L; 94 95 } else if (maxFileSize > Long.MAX_VALUE) { 96 97 maxFileSize = 1024 * 1024 * 1024 * 2L; 98 99 } 100 101 } 102 103 104 105 /** 106 107 * <b>function:</b>通過輸入流參數(shù)上傳文件 108 109 * @author hoojo 110 111 * @createDate Oct 9, 2010 11:22:47 PM 112 113 * @param uploadFileName 文件名稱 114 115 * @param savePath 保存路徑 116 117 * @param InputStream 上傳的文件的輸入流 118 119 * @return 是否上傳成功 120 121 * @throws Exception 122 123 */ 124 125 public static UploadState upload4Stream(String fileName, String path, InputStream is) throws Exception { 126 127 init(); 128 129 UploadState state = UploadState.UPLOAD_FAILURE; 130 131 FileOutputStream fos = null; 132 133 134 135 try { 136 137 path = getDoPath(path); 138 139 mkDir(path); 140 141 fos = new FileOutputStream(path + fileName); 142 143 144 145 byte[] buffer = new byte[bufferSize]; 146 147 int len = 0; 148 149 while ((len = is.read(buffer)) > 0) { 150 151 fos.write(buffer, 0, len); 152 153 } 154 155 state = UploadState.UPLOAD_SUCCSSS; 156 157 } catch (FileNotFoundException e) { 158 159 state = UploadState.UPLOAD_NOTFOUND; 160 161 throw e; 162 163 } catch (IOException e) { 164 165 state = UploadState.UPLOAD_FAILURE; 166 167 throw e; 168 169 } finally { 170 171 if (is != null) { 172 173 is.close(); 174 175 } 176 177 if (fos != null) { 178 179 fos.flush(); 180 181 fos.close(); 182 183 } 184 185 } 186 187 return state; 188 189 } 190 191 192 193 /** 194 195 * <b>function:</b>上傳文件 196 197 * @author hoojo 198 199 * @createDate Oct 9, 2010 11:33:27 PM 200 201 * @param uploadFileName 文件名稱 202 203 * @param savePath 保存路徑 204 205 * @param uploadFile 上傳的文件 206 207 * @return 是否上傳成功 208 209 * @throws Exception 210 211 */ 212 213 public static UploadState upload4Stream(String fileName, String path, File file) throws Exception { 214 215 init(); 216 217 UploadState state = UploadState.UPLOAD_FAILURE; 218 219 FileInputStream fis = null; 220 221 try { 222 223 long size = file.length(); 224 225 if (size <= 0) { 226 227 state = UploadState.UPLOAD_ZEROSIZE; 228 229 } else { 230 231 if (size <= maxFileSize) { 232 233 fis = new FileInputStream(file); 234 235 state = upload4Stream(fileName, path, fis); 236 237 } else { 238 239 state = UploadState.UPLOAD_OVERSIZE; 240 241 } 242 243 } 244 245 } catch (FileNotFoundException e) { 246 247 state = UploadState.UPLOAD_NOTFOUND; 248 249 throw e; 250 251 } catch (IOException e) { 252 253 state = UploadState.UPLOAD_FAILURE; 254 255 throw e; 256 257 } finally { 258 259 if (fis != null) { 260 261 fis.close(); 262 263 } 264 265 } 266 267 return state; 268 269 } 270 271 272 273 /** 274 275 * <b>function:</b>通過數(shù)組進(jìn)行驗證文件類型上傳 276 277 * @author hoojo 278 279 * @createDate Oct 10, 2010 3:39:34 PM 280 281 * @param fileName 文件名稱 282 283 * @param path 文件路徑 284 285 * @param file 文件 286 287 * @param allowTypes 文件后綴、類型數(shù)組 288 289 * @return 返回是否上傳成功 290 291 * @throws Exception 292 293 */ 294 295 public static UploadState upload4Stream(String fileName, String path, File file, String[] allowTypes) throws Exception { 296 297 UploadState state = UploadState.UPLOAD_FAILURE; 298 299 if (validTypeByName(fileName, allowTypes)) { 300 301 state = upload4Stream(fileName, path, file); 302 303 } else { 304 305 state = UploadState.UPLOAD_TYPE_ERROR; 306 307 } 308 309 return state; 310 311 } 312 313 314 315 /** 316 317 * <b>function:</b>通過數(shù)組進(jìn)行驗證文件類型上傳 318 319 * @author hoojo 320 321 * @createDate Oct 10, 2010 3:43:30 PM 322 323 * @param fileName 文件名稱 324 325 * @param path 文件路徑 326 327 * @param InputStream 文件輸入流 328 329 * @param allowTypes 文件后綴、類型數(shù)組 330 331 * @return 返回是否上傳成功 332 333 * @throws Exception 334 335 */ 336 337 public static UploadState upload4Stream(String fileName, String path, InputStream fs, String[] allowTypes) throws Exception { 338 339 UploadState state = UploadState.UPLOAD_FAILURE; 340 341 if (validTypeByName(fileName, allowTypes)) { 342 343 state = upload4Stream(fileName, path, fs); 344 345 } else { 346 347 state = UploadState.UPLOAD_TYPE_ERROR; 348 349 } 350 351 return state; 352 353 } 354 355 356 357 /** 358 359 * <b>function:</b> 利用FileUtils上傳文件;其中maxFileSize是限制上傳文件的大小 360 361 * @author hoojo 362 363 * @createDate Oct 9, 2010 11:49:15 PM 364 365 * @param fileName 文件名稱 366 367 * @param path 保存路徑 368 369 * @param file 文件 370 371 * @return 是否上傳成功 372 373 * @throws Exception 374 375 */ 376 377 public static boolean upload4CopyFile(String fileName, String path, File file) throws Exception { 378 379 init(); 380 381 boolean success = false; 382 383 if (file.length() <= maxFileSize) { 384 385 path = getDoPath(path); 386 387 mkDir(path); 388 389 File destFile = new File(path, fileName); 390 391 FileUtils.copyFile(file, destFile); 392 393 success = true; 394 395 } 396 397 return success; 398 399 } 400 401 402 403 /** 404 405 * <b>function:</b>上傳指定文件類型的文件 406 407 * @author hoojo 408 409 * @createDate Oct 10, 2010 12:30:09 PM 410 411 * @param fileName 文件名 412 413 * @param path 路徑 414 415 * @param file 文件 416 417 * @param allowTypes 類型、后綴數(shù)組 418 419 * @return 成功上傳的文件名 420 421 * @throws Exception 422 423 */ 424 425 public static boolean upload4CopyFile(String fileName, String path, File file, String[] allowTypes) throws Exception { 426 427 boolean success = false; 428 429 if (validTypeByName(fileName, allowTypes)) { 430 431 success = upload4CopyFile(fileName, path, file); 432 433 } 434 435 return success; 436 437 } 438 439 440 441 /** 442 443 * <b>function:</b> 根據(jù)文件名和類型數(shù)組驗證文件類型是否合法,flag是否忽略大小寫 444 445 * @author hoojo 446 447 * @createDate Oct 10, 2010 11:54:54 AM 448 449 * @param fileName 文件名 450 451 * @param allowTypes 類型數(shù)組 452 453 * @param flag 是否獲得大小寫 454 455 * @return 是否驗證通過 456 457 */ 458 459 public static boolean validTypeByName(String fileName, String[] allowTypes, boolean flag) { 460 461 String suffix = getType(fileName); 462 463 boolean valid = false; 464 465 if (allowTypes.length > 0 && "*".equals(allowTypes[0])) { 466 467 valid = true; 468 469 } else { 470 471 for (String type : allowTypes) { 472 473 if (flag) {//不區(qū)分大小寫后綴 474 475 if (suffix != null && suffix.equalsIgnoreCase(type)) { 476 477 valid = true; 478 479 break; 480 481 } 482 483 } else {//嚴(yán)格區(qū)分大小寫 484 485 if (suffix != null && suffix.equals(type)) { 486 487 valid = true; 488 489 break; 490 491 } 492 493 } 494 495 } 496 497 } 498 499 return valid; 500 501 } 502 503 504 505 /** 506 507 * <b>function:</b>根據(jù)文件名稱和類型數(shù)組驗證文件類型是否合法 508 509 * @author hoojo 510 511 * @createDate Oct 10, 2010 10:27:17 AM 512 513 * @param fileName 文件名 514 515 * @param allowTypes 文件類型數(shù)組 516 517 * @return 是否合法 518 519 */ 520 521 public static boolean validTypeByName(String fileName, String[] allowTypes) { 522 523 return validTypeByName(fileName, allowTypes, true); 524 525 } 526 527 528 529 /** 530 531 * <b>function:</b> 根據(jù)后綴和類型數(shù)組驗證文件類型是否合法,flag是否區(qū)分后綴大小寫,true嚴(yán)格大小寫 532 533 * @author hoojo 534 535 * @createDate Oct 10, 2010 12:00:10 PM 536 537 * @param suffix 后綴名 538 539 * @param allowTypes 文件類型數(shù)組 540 541 * @param flag 是否區(qū)分大小寫 542 543 * @return 是否合法 544 545 */ 546 547 public static boolean validTypeByPostfix(String suffix, String[] allowTypes, boolean flag) { 548 549 boolean valid = false; 550 551 if (allowTypes.length > 0 && "*".equals(allowTypes[0])) { 552 553 valid = true; 554 555 } else { 556 557 for (String type : allowTypes) { 558 559 if (flag) {//不區(qū)分大小寫后綴 560 561 if (suffix != null && suffix.equalsIgnoreCase(type)) { 562 563 valid = true; 564 565 break; 566 567 } 568 569 } else {//嚴(yán)格區(qū)分大小寫 570 571 if (suffix != null && suffix.equals(type)) { 572 573 valid = true; 574 575 break; 576 577 } 578 579 } 580 581 } 582 583 } 584 585 return valid; 586 587 } 588 589 590 591 /** 592 593 * <b>function:</b>根據(jù)文件后綴名和類型數(shù)組,驗證文件類型是否合法 594 595 * @author hoojo 596 597 * @createDate Oct 10, 2010 10:25:32 AM 598 599 * @param suffix 后綴名 600 601 * @param allowTypes 類型數(shù)組 602 603 * @return 是否合法 604 605 */ 606 607 public static boolean validTypeByPostfix(String suffix, String[] allowTypes) { 608 609 return validTypeByPostfix(suffix, allowTypes, true); 610 611 } 612 613 614 615 /** 616 617 * <b>function:</b>驗證當(dāng)前后綴、文件類型是否是圖片類型 618 619 * typeImages 可以設(shè)置圖片類型 620 621 * @author hoojo 622 623 * @createDate Oct 10, 2010 12:17:18 PM 624 625 * @param suffix 驗證文件的后綴 626 627 * @return 是否合法 628 629 */ 630 631 public static boolean validTypeByPostfix4Images(String suffix) { 632 633 return validTypeByPostfix(suffix, typeImages); 634 635 } 636 637 638 639 /** 640 641 * <b>function:</b>驗證當(dāng)前后綴、文件類型是否是非圖片類型(常用辦公文件類型) 642 643 * typeOthers 可以設(shè)置文件類型 644 645 * @author hoojo 646 647 * @createDate Oct 10, 2010 12:18:18 PM 648 649 * @param suffix 驗證文件的后綴 650 651 * @return 是否合法 652 653 */ 654 655 public static boolean validTypeByPostfix4Others(String suffix) { 656 657 return validTypeByPostfix(suffix, typeOthers); 658 659 } 660 661 662 663 /** 664 665 * <b>function:</b>驗證當(dāng)前文件名、文件類型是否是圖片類型 666 667 * typeImages 可以設(shè)置圖片類型 668 669 * @author hoojo 670 671 * @createDate Oct 10, 2010 12:19:18 PM 672 673 * @param fileName 驗證文件的名稱 674 675 * @return 是否合法 676 677 */ 678 679 public static boolean validTypeByName4Images(String fileName) { 680 681 return validTypeByName(fileName, typeImages); 682 683 } 684 685 686 687 /** 688 689 * <b>function:</b>驗證當(dāng)前文件名稱、文件類型是否是非圖片類型(常用辦公文件類型) 690 691 * typeOthers 可以設(shè)置文件類型 692 693 * @author hoojo 694 695 * @createDate Oct 10, 2010 12:21:22 PM 696 697 * @param fileName 驗證文件的名稱 698 699 * @return 是否合法 700 701 */ 702 703 public static boolean validTypeByName4Others(String fileName) { 704 705 return validTypeByName(fileName, typeOthers); 706 707 } 708 709 710 711 /** 712 713 * <b>function:</b>傳遞一個路徑和文件名稱,刪除該文件 714 715 * @author hoojo 716 717 * @createDate Oct 10, 2010 10:47:57 AM 718 719 * @param fileName 文件名稱 720 721 * @param path 路徑 722 723 * @return 是否刪除成功 724 725 */ 726 727 public static boolean removeFile(String fileName, String path) { 728 729 boolean flag = false; 730 731 if (isFileExist(fileName, path)) { 732 733 File file = new File(getDoPath(path) + fileName); 734 735 flag = file.delete(); 736 737 } 738 739 return flag; 740 741 } 742 743 744 745 /** 746 747 * <b>function:</b>刪除當(dāng)前文件 748 749 * @author hoojo 750 751 * @createDate Oct 10, 2010 10:49:54 AM 752 753 * @param file 要刪除的文件 754 755 * @return 是否刪除成功 756 757 */ 758 759 public static boolean removeFile(File file) { 760 761 boolean flag = false; 762 763 if (file != null && file.exists()) { 764 765 flag = file.delete(); 766 767 } 768 769 return flag; 770 771 } 772 773 774 775 /** 776 777 * <b>function:</b>刪除某個文件 778 779 * @author hoojo 780 781 * @createDate Oct 12, 2010 9:33:06 PM 782 783 * @param path 傳遞該文件路徑 784 785 * @return 刪除是否成功 786 787 */ 788 789 public static boolean removeFile(String path) { 790 791 return removeFile(new File(path)); 792 793 } 794 795 796 797 /** 798 799 * <b>function:</b>刪除當(dāng)前文件下面所有文件 800 801 * @author hoojo 802 803 * @createDate Oct 12, 2010 9:27:33 PM 804 805 * @param file File 要刪除的文件夾下面文件的文件對象 806 807 * @return 是否刪除成功,如果有一個文件刪除失敗,將返回false 808 809 */ 810 811 public static boolean removeFile4Dir(File file) { 812 813 boolean flag = false; 814 815 if (file != null && file.exists() && file.isDirectory()) { 816 817 File[] allFile = file.listFiles(); 818 819 for (File f : allFile) { 820 821 flag = f.delete(); 822 823 if (!flag) { 824 825 System.err.println("刪除文件" + f.getAbsolutePath() + "出錯了!"); 826 827 break; 828 829 } 830 831 } 832 833 } 834 835 return flag; 836 837 } 838 839 840 841 /** 842 843 * <b>function:</b>刪除當(dāng)前目錄下所有文件 844 845 * @author hoojo 846 847 * @createDate Oct 12, 2010 9:34:41 PM 848 849 * @param path 目錄、路徑 850 851 * @return 是否成功 852 853 */ 854 855 public static boolean removeFile4Dir(String path) { 856 857 return removeFile4Dir(new File(path)); 858 859 } 860 861 862 863 /** 864 865 * <b>function:</b>刪除某個文件夾下的所有文件(除目錄),包含子文件夾的文件 866 867 * @author hoojo 868 869 * @createDate Oct 12, 2010 9:30:01 PM 870 871 * @param file 即將刪除文件夾對象 872 873 * @return 是否刪除成功 874 875 */ 876 877 public static boolean removeAllFile4Dir(File file) { 878 879 boolean flag = false; 880 881 if (file != null && file.exists() && file.isDirectory()) { 882 883 File[] allFile = file.listFiles(); 884 885 for (File f : allFile) { 886 887 if (!f.isDirectory()) { 888 889 flag = f.delete(); 890 891 } else { 892 893 flag = removeAllFile4Dir(f); 894 895 } 896 897 if (!flag) { 898 899 System.err.println("刪除文件" + f.getAbsolutePath() + "出錯了!"); 900 901 break; 902 903 } 904 905 } 906 907 } 908 909 return flag; 910 911 } 912 913 914 915 /** 916 917 * <b>function:</b>刪除某個目錄下所有文件(不包含文件夾,包含文件夾下的文件) 918 919 * @author hoojo 920 921 * @createDate Oct 12, 2010 9:36:17 PM 922 923 * @param path 924 925 * @return 926 927 */ 928 929 public static boolean removeAllFile4Dir(String path) { 930 931 return removeAllFile4Dir(new File(path)); 932 933 } 934 935 936 937 /** 938 939 * <b>function:</b> 傳入一個文件名,得到這個文件名稱的后綴 940 941 * @author hoojo 942 943 * @createDate Oct 9, 2010 11:30:46 PM 944 945 * @param fileName 文件名 946 947 * @return 后綴名 948 949 */ 950 951 public static String getSuffix(String fileName) { 952 953 int index = fileName.lastIndexOf("."); 954 955 if (index != -1) { 956 957 String suffix = fileName.substring(index);//后綴 958 959 return suffix; 960 961 } else { 962 963 return null; 964 965 } 966 967 } 968 969 970 971 /** 972 973 * <b>function:</b>和文件后綴一樣,不同的是沒有“.” 974 975 * @author hoojo 976 977 * @createDate Oct 10, 2010 2:42:43 PM 978 979 * @param fileName 文件名稱 980 981 * @return 982 983 */ 984 985 public static String getType(String fileName) { 986 987 int index = fileName.lastIndexOf("."); 988 989 if (index != -1) { 990 991 String suffix = fileName.substring(index + 1);//后綴 992 993 return suffix; 994 995 } else { 996 997 return null; 998 999 } 1000 1001 } 1002 1003 1004 1005 /** 1006 1007 * <b>function:</b> 傳遞一個文件名稱和一個新名稱,組合成一個新的帶后綴文件名 1008 1009 * 當(dāng)傳遞的文件名沒有后綴,會添加默認(rèn)的后綴 1010 1011 * @author hoojo 1012 1013 * @createDate Oct 9, 2010 10:53:06 PM 1014 1015 * @param fileName 文件名稱 1016 1017 * @param newName 新文件名稱 1018 1019 * @param nullSuffix 為沒有后綴的文件所添加的后綴;eg:txt 1020 1021 * @return String 文件名稱 1022 1023 */ 1024 1025 public static String getNewFileName(String fileName, String newName, String nullSuffix) { 1026 1027 String suffix = getSuffix(fileName); 1028 1029 if (suffix != null) { 1030 1031 newName += suffix; 1032 1033 } else { 1034 1035 newName = newName.concat(".").concat(nullSuffix); 1036 1037 } 1038 1039 return newName; 1040 1041 } 1042 1043 1044 1045 /** 1046 1047 * <b>function:</b> 利用uuid產(chǎn)生一個隨機(jī)的name 1048 1049 * @author hoojo 1050 1051 * @createDate Oct 9, 2010 10:45:27 PM 1052 1053 * @param fileName 帶后綴的文件名稱 1054 1055 * @return String 隨機(jī)生成的name 1056 1057 */ 1058 1059 public static String getRandomName(String fileName) { 1060 1061 String randomName = UUID.randomUUID().toString(); 1062 1063 return getNewFileName(fileName, randomName, "txt"); 1064 1065 } 1066 1067 1068 1069 /** 1070 1071 * <b>function:</b> 用當(dāng)前日期、時間和1000以內(nèi)的隨機(jī)數(shù)組合成的文件名稱 1072 1073 * @author hoojo 1074 1075 * @createDate Oct 9, 2010 11:01:47 PM 1076 1077 * @param fileName 文件名稱 1078 1079 * @return 新文件名稱 1080 1081 */ 1082 1083 public static String getNumberName(String fileName) { 1084 1085 SimpleDateFormat format = new SimpleDateFormat("yyMMddhhmmss"); 1086 1087 int rand = new Random().nextInt(1000); 1088 1089 String numberName = format.format(new Date()) + rand; 1090 1091 return getNewFileName(fileName, numberName, "txt"); 1092 1093 } 1094 1095 1096 1097 /** 1098 1099 * <b>function:</b>判斷該文件是否存在 1100 1101 * @author hoojo 1102 1103 * @createDate Oct 10, 2010 12:00:44 AM 1104 1105 * @param fileName 文件名稱 1106 1107 * @param path 目錄 1108 1109 * @return 是否存在 1110 1111 */ 1112 1113 public static boolean isFileExist(String fileName, String path) { 1114 1115 File file = new File(getDoPath(path) + fileName); 1116 1117 return file.exists(); 1118 1119 } 1120 1121 1122 1123 /** 1124 1125 * <b>function:</b>返回可用的文件名 1126 1127 * @author hoojo 1128 1129 * @createDate Oct 10, 2010 1:02:45 AM 1130 1131 * @param fileName 文件名 1132 1133 * @param path 路徑 1134 1135 * @return 可用文件名 1136 1137 */ 1138 1139 public static String getBracketFileName(String fileName, String path) { 1140 1141 return getBracketFileName(fileName, fileName, path, 1); 1142 1143 } 1144 1145 1146 1147 1148 1149 /** 1150 1151 * <b>function:</b>遞歸處理文件名稱,直到名稱不重復(fù)(對文件名、目錄文件夾都可用) 1152 1153 * eg: a.txt --> a(1).txt 1154 1155 * 文件夾upload--> 文件夾upload(1) 1156 1157 * @author hoojo 1158 1159 * @createDate Oct 10, 2010 12:56:27 AM 1160 1161 * @param fileName 文件名稱 1162 1163 * @param path 文件路徑 1164 1165 * @param num 累加數(shù)字,種子 1166 1167 * @return 返回沒有重復(fù)的名稱 1168 1169 */ 1170 1171 public static String getBracketFileName(String fileName, String bracketName, String path, int num) { 1172 1173 boolean exist = isFileExist(bracketName, path); 1174 1175 if (exist) { 1176 1177 int index = fileName.lastIndexOf("."); 1178 1179 String suffix = ""; 1180 1181 bracketName = fileName; 1182 1183 if (index != -1) { 1184 1185 suffix = fileName.substring(index); 1186 1187 bracketName = fileName.substring(0, index); 1188 1189 } 1190 1191 bracketName += "(" + num + ")" + suffix; 1192 1193 num++; 1194 1195 bracketName = getBracketFileName(fileName, bracketName, path, num); 1196 1197 } 1198 1199 return bracketName; 1200 1201 } 1202 1203 1204 1205 /** 1206 1207 * <b>function:</b>處理后的系統(tǒng)文件路徑 1208 1209 * @author hoojo 1210 1211 * @createDate Oct 10, 2010 12:49:31 AM 1212 1213 * @param path 文件路徑 1214 1215 * @return 返回處理后的路徑 1216 1217 */ 1218 1219 public static String getDoPath(String path) { 1220 1221 path = path.replace("\\", "/"); 1222 1223 String lastChar = path.substring(path.length() - 1); 1224 1225 if (!"/".equals(lastChar)) { 1226 1227 path += "/"; 1228 1229 } 1230 1231 return path; 1232 1233 } 1234 1235 1236 1237 /** 1238 1239 * <b>function:</b> 創(chuàng)建指定的path路徑目錄 1240 1241 * @author hoojo 1242 1243 * @createDate Oct 9, 2010 11:03:49 PM 1244 1245 * @param path 目錄、路徑 1246 1247 * @return 是否創(chuàng)建成功 1248 1249 * @throws Exception 1250 1251 */ 1252 1253 public static boolean mkDir(String path) throws Exception { 1254 1255 File file = null; 1256 1257 try { 1258 1259 file = new File(path); 1260 1261 if (!file.exists()) { 1262 1263 return file.mkdirs(); 1264 1265 } 1266 1267 } catch (RuntimeException e) { 1268 1269 throw e; 1270 1271 } finally { 1272 1273 file = null; 1274 1275 } 1276 1277 return false; 1278 1279 } 1280 1281 1282 1283 /** 1284 1285 * 創(chuàng)建縮略圖 1286 1287 * @param file 上傳的文件流 1288 1289 * @param height 最小的尺寸 1290 1291 * @throws IOException 1292 1293 */ 1294 1295 /*public static void writeBrevityPic(File file, float width, float height) throws IOException { 1296 1297 Image src = javax.imageio.ImageIO.read(file); // 構(gòu)造Image對象 1298 1299 int old_w = src.getWidth(null); // 得到源圖寬 1300 1301 int old_h = src.getHeight(null); 1302 1303 int new_w = 0; 1304 1305 int new_h = 0; // 得到源圖長 1306 1307 float tempdouble; 1308 1309 if (old_w >= old_h) { 1310 1311 tempdouble = old_w / width; 1312 1313 } else { 1314 1315 tempdouble = old_h / height; 1316 1317 } 1318 1319 1320 1321 if (old_w >= width || old_h >= height) { // 如果文件小于鎖略圖的尺寸則復(fù)制即可 1322 1323 new_w = Math.round(old_w / tempdouble); 1324 1325 new_h = Math.round(old_h / tempdouble);// 計算新圖長寬 1326 1327 while (new_w > width && new_h > height) { 1328 1329 if (new_w > width) { 1330 1331 tempdouble = new_w / width; 1332 1333 new_w = Math.round(new_w / tempdouble); 1334 1335 new_h = Math.round(new_h / tempdouble); 1336 1337 } 1338 1339 if (new_h > height) { 1340 1341 tempdouble = new_h / height; 1342 1343 new_w = Math.round(new_w / tempdouble); 1344 1345 new_h = Math.round(new_h / tempdouble); 1346 1347 } 1348 1349 } 1350 1351 BufferedImage tag = new BufferedImage(new_w, new_h, BufferedImage.TYPE_INT_RGB); 1352 1353 tag.getGraphics().drawImage(src, 0, 0, new_w, new_h, null); // 繪制縮小后的圖 1354 1355 FileOutputStream newimage = new FileOutputStream(file); // 輸出到文件流 1356 1357 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage); 1358 1359 JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(tag); 1360 1361 param.setQuality((float) (100 / 100.0), true);// 設(shè)置圖片質(zhì)量,100最大,默認(rèn)70 1362 1363 encoder.encode(tag, param); 1364 1365 encoder.encode(tag); // 將JPEG編碼 1366 1367 newimage.close(); 1368 1369 } 1370 1371 }*/ 1372 1373 1374 1375 public static void main(String[] args) throws Exception { 1376 1377 String path = "F:/Example Exercise/ExtJS/MultiUpload/WebRoot/upload"; 1378 1379 //System.out.println(mkDir(path)); 1380 1381 System.out.println(getDoPath(path)); 1382 1383 System.out.println(getBracketFileName("a.txt", getDoPath(path))); 1384 1385 System.out.println(getNumberName("a.jpg")); 1386 1387 System.out.println(getNumberName("a.jpg")); 1388 1389 System.out.println(getNewFileName("a", "bbb", "txt")); 1390 1391 System.out.println(getRandomName("a.htm")); 1392 1393 System.out.println(getSuffix("a.jpg")); 1394 1395 System.out.println(getType("a.jpg")); 1396 1397 //List<File> list = getFiles(path); 1398 1399 //List<File> list = getFiles(path, "xml"); 1400 1401 //List<File> list = getFiles(path, typeImages); 1402 1403 //List<File> list = getFiles(path, typeOthers); 1404 1405 //List<File> list = getFiles(path, typeImages, false); 1406 1407 /*List<File> list = getFiles(path, "GIF", true); 1408 1409 for (File f : list) { 1410 1411 System.out.println("Name:" + f.getName()); 1412 1413 System.out.println(f.getAbsolutePath() + "#" + f.getPath()); 1414 1415 }*/ 1416 1417 System.out.println(removeFile("a.txt", path)); 1418 1419 System.out.println("#############################################"); 1420 1421 System.out.println("###" + validTypeByName("a", new String[]{"*"})); 1422 1423 System.out.println("###" + validTypeByName("a.JPG", typeImages)); 1424 1425 System.out.println("###" + validTypeByName("a.JPG", typeImages, false)); 1426 1427 System.out.println(validTypeByPostfix("cals", new String[]{"*", "b"})); 1428 1429 System.out.println(validTypeByPostfix("b", new String[]{"cal", "B"}, false)); 1430 1431 } 1432 1433 }

版權(quán)所有,轉(zhuǎn)載請注明出處 本文出自: http://www.cnblogs.com/hoojo/archive/2012/02/10/2345234.html

轉(zhuǎn)載于:https://www.cnblogs.com/wangrs/archive/2012/04/30/2476855.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的分享一个文件上传工具类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

91精品在线免费观看 | 在线黄色观看 | 69精品久久久 | 国产在线日本 | 久久精品99北条麻妃 | 成年人黄色av | 欧美天堂影院 | 99免费在线观看视频 | 中文字幕精品一区久久久久 | 国产一级二级av | 亚洲激情 在线 | 中文乱码视频在线观看 | 人人爽久久久噜噜噜电影 | 91久久丝袜国产露脸动漫 | 婷婷六月网 | 丁香六月天 | www黄com| 日韩三级视频 | 免费成人av| 成人精品99 | 日韩精品观看 | 国模一二三区 | 天天爱天天色 | 成人网页在线免费观看 | 亚洲视频综合 | 国产玖玖在线 | 在线视频观看成人 | 五月婷在线播放 | 亚洲成a人片77777kkkk1在线观看 | 91干干干 | 中文字幕av在线电影 | 国产色道| 国产精品毛片一区二区三区 | 国产五十路毛片 | 国产高清不卡一区二区三区 | 成人黄色免费在线观看 | 国产精品中文久久久久久久 | 国产中文字幕网 | 国产一区二区高清视频 | 色香蕉在线视频 | 国产成本人视频在线观看 | 久久不射影院 | 911精品美国片911久久久 | 日韩成人邪恶影片 | 精品久久一区 | 久久玖| 日韩欧美在线高清 | 中文字幕丝袜一区二区 | 国产精品一区二区三区久久久 | 69国产精品成人在线播放 | 免费看一及片 | 日韩中文字幕在线看 | 欧美国产亚洲精品久久久8v | 国产剧情一区二区在线观看 | 视频在线观看国产 | 2024国产精品视频 | 肉色欧美久久久久久久免费看 | 毛片的网址 | 视频在线观看国产 | 成年人在线免费视频观看 | 免费看av片网站 | 日韩在线国产 | 亚洲最大av | 成人久久久久久久久 | 韩国中文三级 | 国产在线黄 | 国产精品video | 国产最新91 | a极黄色片| 国产精品久久久久久五月尺 | www一起操| 免费观看v片在线观看 | 黄色影院在线免费观看 | 日本精品视频一区 | 在线中文字幕播放 | 欧美无极色 | 日韩久久一区二区 | www.色午夜| 午夜黄色影院 | 日韩一级电影在线 | 日日麻批40分钟视频免费观看 | 最新av网址在线观看 | 国产精品福利av | 最近免费中文字幕 | 久久天天躁夜夜躁狠狠躁2022 | 久久综合久久综合久久 | 久久久精品久久日韩一区综合 | 九九免费观看全部免费视频 | 免费看v片 | 韩国av一区二区三区在线观看 | 久久国产精品影片 | 911亚洲精品第一 | 久久欧美在线电影 | 丁香九月激情 | 精品久久久久久久久久岛国gif | 99麻豆久久久国产精品免费 | 正在播放日韩 | 丁香婷婷色月天 | 丁香激情五月 | 五月婷婷开心中文字幕 | 亚洲做受高潮欧美裸体 | 91av电影在线观看 | 亚洲va在线va天堂va偷拍 | 欧美日韩国产页 | 免费在线一区二区 | 日日干干 | 国产亚洲在线观看 | 91视频下载 | 干干日日| 久久最新视频 | 欧美精品久久久久久久亚洲调教 | 久久久www成人免费精品 | www黄色软件 | 色婷婷综合久久久久中文字幕1 | 黄色福利视频网站 | 91色国产在线 | 国产日韩欧美自拍 | 麻豆播放 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 久久av伊人| 天天操天天干天天插 | 99久久精品国产免费看不卡 | 狠狠狠狠狠狠狠狠干 | 久插视频 | 亚洲精品久久久久58 | 国产视频第二页 | 亚洲精品日韩一区二区电影 | 欧美在线视频一区二区三区 | 精品国产一区二区三区久久影院 | 久草9视频 | 精品久久免费 | 中文字幕在线观看av | 亚洲影院一区 | 亚洲精品国偷自产在线99热 | 久久久精品综合 | 黄色中文字幕 | 美女久久久久 | 国产精品综合在线观看 | 欧美在线观看视频一区二区三区 | 国产精品久久综合 | 在线观看爱爱视频 | 99国内精品 | 91av福利视频 | 日韩手机在线观看 | 人人看97 | 91成人精品国产刺激国语对白 | 欧美久久久一区二区三区 | 亚洲精品欧美视频 | 日韩精品免费一区二区三区 | 国产一二三精品 | 九九热在线免费观看 | 国产精品av免费 | 日本精品视频在线观看 | 91漂亮少妇露脸在线播放 | 日韩av影视| www黄在线 | 国产精品女主播一区二区三区 | 天天色草 | 91九色在线播放 | 亚洲码国产日韩欧美高潮在线播放 | 久久精品电影院 | 国语黄色片 | 欧美性网站 | 国产精品一区二区吃奶在线观看 | 亚洲伦理一区 | 99久久精品免费看国产一区二区三区 | 精品国产乱码久久久久 | 亚洲欧美一区二区三区孕妇写真 | 天天爽天天搞 | 亚洲免费一级电影 | 久久综合一本 | 91丨精品丨蝌蚪丨白丝jk | 日本久久中文 | 亚洲精品在线看 | 国产精品ⅴa有声小说 | 日韩日韩日韩日韩 | 在线观看国产麻豆 | 国产精品1区2区在线观看 | 二区中文字幕 | 日韩毛片在线播放 | 欧美性生活久久 | 丰满少妇一级片 | 久久6精品 | 五月婷婷色丁香 | 丁香婷婷色月天 | 国产成视频在线观看 | 国产一级在线免费观看 | 日韩免费一级电影 | 久久久麻豆精品一区二区 | 亚洲精品激情 | 98久9在线 | 免费 | 国产亚洲在线 | av成人在线电影 | 国产成人精品免高潮在线观看 | 丝袜一区在线 | 欧美日韩裸体免费视频 | www免费| 免费久草视频 | 91天堂素人约啪 | 久久精品一二三 | 丁香高清视频在线看看 | 五月av在线| www.久草视频 | wwxxx日本| 最新中文在线视频 | 日韩大陆欧美高清视频区 | www.夜夜操.com | 日本色小说视频 | 成人精品99 | 激情av在线播放 | 狠色在线| 久久久国内精品 | 中文字幕在线播放一区二区 | 久久视频精品在线 | 久久精品三 | 久久精品国产第一区二区三区 | 日日干天夜夜 | 日韩精品第一区 | 五月婷婷视频在线 | 免费av成人在线 | 亚洲一区二区黄色 | 国产色小视频 | 久久中文字幕导航 | 米奇四色影视 | 日韩免费 | 精品国产诱惑 | 午夜美女av | 高潮久久久久久 | 四虎影视成人永久免费观看亚洲欧美 | 一区二区三区四区精品视频 | 国产精品1区2区3区在线观看 | 亚洲精品国产拍在线 | 香蕉在线影院 | 一级黄色电影网站 | 日韩黄色在线电影 | 99爱视频在线观看 | 在线视频免费观看 | 亚洲精品在线国产 | 欧美在线1 | 99色在线观看视频 | 最近中文字幕mv免费高清在线 | 最近中文字幕视频网 | 久久99视频精品 | 深爱激情五月综合 | 激情综合亚洲精品 | 免费观看性生交 | 国产福利在线免费 | 依人成人综合网 | 国内久久精品视频 | 国产一区高清在线观看 | 五月婷婷狠狠 | 成年人黄色免费视频 | 久久免费国产视频 | 黄色国产高清 | japanesexxxxfreehd乱熟 | 日韩av网站在线播放 | 西西大胆啪啪 | 亚洲国产三级 | 精品国产诱惑 | 综合激情伊人 | 一级黄色片在线免费看 | 日韩激情av在线 | 婷婷国产视频 | 日本精品免费看 | 91精品国产三级a在线观看 | 久草免费在线视频观看 | 精品视频在线观看 | 成人av电影在线播放 | 欧美成天堂网地址 | 精品国产一区二区三区四区在线观看 | 久热免费在线观看 | 人人cao| 国内精品小视频 | 久久综合影音 | 99精品欧美一区二区三区 | 人人舔人人插 | 日韩午夜电影网 | 久久久久久97三级 | 亚洲精品毛片一级91精品 | 伊人五月天综合 | 免费观看性生活大片3 | 国产精品99免视看9 国产精品毛片一区视频 | 美女网站视频免费都是黄 | 久久国产精品久久精品国产演员表 | 欧美嫩草影院 | a级成人毛片 | 国产成人精品久久久 | 丁香婷婷深情五月亚洲 | 久久99久久99久久 | 精品视频在线视频 | av片一区二区 | 亚洲不卡123 | 在线精品视频免费观看 | 久久电影中文字幕视频 | 精品亚洲视频在线 | 久久国产精品色av免费看 | 午夜91视频| 久久国产精品久久精品 | 麻豆久久久久久久 | 在线免费黄色片 | 米奇影视7777 | 免费观看成人网 | 久久少妇av | 99日韩精品| 亚洲国产精品激情在线观看 | 欧美日韩二三区 | 国产精品一区二区三区四区在线观看 | 国产色婷婷在线 | 欧美a级成人淫片免费看 | 免费手机黄色网址 | 国产成人a v电影 | 黄色网址在线播放 | 日韩在线免费视频观看 | 日韩电影一区二区在线观看 | 久久久国产精品免费 | 操一草| 曰本三级在线 | 国产韩国日本高清视频 | 999电影免费在线观看 | 欧美久久久久久久久久久久久 | 日韩精品一区二区免费 | 九九热在线精品 | 国产精品入口久久 | a级国产片 | 日韩乱理 | 亚欧日韩av| 五月婷在线观看 | 在线免费黄色av | 色视频网址| 99riav1国产精品视频 | 九色最新网址 | 最近最新最好看中文视频 | 91视频免费网站 | 中文字幕免费一区 | 视频一区二区在线观看 | 91亚洲精品久久久蜜桃网站 | 精品国产a | 日韩va欧美va亚洲va久久 | 欧美午夜精品久久久久 | 麻豆91小视频 | 久久久久免费精品国产小说色大师 | 丁香婷婷综合激情五月色 | 国产黑丝一区二区三区 | 国内三级在线观看 | 日韩在线免费不卡 | 亚洲专区一二三 | 国产精品成人久久 | www.在线观看av | 欧美日韩在线网站 | aaa日本高清在线播放免费观看 | 91日韩在线专区 | av在线免费播放网站 | 亚洲五月婷婷 | 日本精品一| 操操爽| 成人一级在线 | 亚洲国产精品成人va在线观看 | 国产精品久久久久久久久久久免费 | av解说在线 | 天天综合网入口 | 狠狠狠色丁香综合久久天下网 | 色播亚洲婷婷 | 欧美极品xxxxx | 亚洲精品国 | 在线亚洲人成电影网站色www | 欧美激精品| 国精产品999国精产品岳 | 国产精品99久久99久久久二8 | 欧美亚洲免费在线一区 | 四虎永久免费网站 | av中文字幕在线看 | 97精品国产手机 | 五月天婷婷在线视频 | 在线观看国产日韩欧美 | 中文字幕高清免费日韩视频在线 | 久久久久亚洲a | 一级久久久 | 国产一区二区在线免费播放 | 久久人人艹 | 久久国产精品一区二区三区四区 | 瑞典xxxx性hd极品 | 亚洲在线视频播放 | 国产大陆亚洲精品国产 | 综合网婷婷| 精品国产综合区久久久久久 | 久久久视频在线 | 日韩网站一区 | 国产第一福利 | 99国产一区二区三精品乱码 | 麻豆91精品| 韩国三级一区 | 日韩中文字幕视频在线 | 国产亚洲精品中文字幕 | 天天爽夜夜爽人人爽一区二区 | 99免费在线观看 | 午夜精品久久久久久久久久久久 | 久久午夜剧场 | 成年人在线电影 | 精品久久一区二区三区 | 手机av电影在线 | 亚洲午夜久久久综合37日本 | 国产免费一区二区三区网站免费 | 91豆麻精品91久久久久久 | 在线之家免费在线观看电影 | 久久国产精品区 | 麻豆视频国产 | 亚洲免费在线看 | 久久久国产精华液 | a天堂最新版中文在线地址 久久99久久精品国产 | 狠狠狠色丁香综合久久天下网 | 日韩中文字幕国产精品 | 精品国产一区二区三区av性色 | 精品一二三四在线 | 日日夜夜精品网站 | av黄网站 | 一区二区三区高清 | 国产精品涩涩屋www在线观看 | 久久精品这里精品 | 国产99久久99热这里精品5 | 97视频精品 | 日韩精品一卡 | 91大片成人网| 91女神的呻吟细腰翘臀美女 | 日韩电影久久 | 国产精品国产亚洲精品看不卡15 | 91精品视频免费看 | 在线国产日韩 | 久久伊99综合婷婷久久伊 | 久久久毛片 | 午夜视频一区二区 | 精品国产一区二区三区不卡 | 久草在线视频在线观看 | 国产在线视频一区二区三区 | 亚洲在线黄色 | 日本中文字幕在线播放 | 手机成人免费视频 | 免费成人av电影 | 天天操天天射天天爽 | 欧美一级久久久 | 久草精品视频在线播放 | 日产乱码一二三区别在线 | 久久久91精品国产一区二区精品 | 国际精品久久久久 | 日韩动漫免费观看高清完整版在线观看 | 国产精品99久久久精品 | 激情综合一区 | www99久久 | 天天操 夜夜操 | 国产精品不卡在线观看 | 最新国产精品久久精品 | 久久精品一区二区三区四区 | 国内外成人在线 | 欧美精品视| 国产精品久久在线观看 | www.久久99 | 久久久久99精品成人片三人毛片 | 五月天中文在线 | 日日夜夜精品视频天天综合网 | 久久精品一二三区 | 色中色亚洲 | 91精品一区二区在线观看 | 久草在线国产 | 狠狠艹夜夜干 | 亚洲另类交 | 亚洲一二区视频 | 亚洲精品在线免费 | 久久无码精品一区二区三区 | 99久久婷婷国产综合精品 | 亚洲精品视频网 | 亚洲 欧洲av | 日韩有码专区 | 国产99中文字幕 | 丁香 婷婷 激情 | 日韩午夜一级片 | 国产成免费视频 | 免费成人在线观看 | 精品日韩在线一区 | 狠狠干夜夜操天天爽 | 久久免费99精品久久久久久 | 四虎影视4hu4虎成人 | 欧美少妇影院 | 国内精品中文字幕 | 黄色av一区二区 | 91精品老司机久久一区啪 | 超碰成人av| 国产视频一区二区在线 | 欧美一级片免费观看 | 国产精品一区二区在线免费观看 | 狠狠干婷婷 | 国产.精品.日韩.另类.中文.在线.播放 | 女人18毛片a级毛片一区二区 | 手机av电影在线 | 久久久免费视频播放 | 成人免费亚洲 | av电影在线观看 | 亚洲成av人电影 | 视频一区在线播放 | 免费高清无人区完整版 | 国产精品成久久久久三级 | 国产精品久久久久久爽爽爽 | 中文字幕在线影院 | 欧美在线观看视频一区二区三区 | av中文电影 | 久久综合给合久久狠狠色 | 在线视频免费观看 | 精品久久久久久久久亚洲 | 国产一区二区三区四区大秀 | 欧美三级高清 | 色亚洲网| 日韩va亚洲va欧美va久久 | 黄色网址在线播放 | 日韩系列 | 中文字幕在线专区 | 肉色欧美久久久久久久免费看 | 久久婷综合| av看片在线观看 | 黄色aa久久| 狠狠干天天 | 波多野结衣精品在线 | 五月婷婷色丁香 | 亚洲a成人v| 免费av电影网站 | 色视频网站在线观看一=区 a视频免费在线观看 | 黄色网在线免费观看 | 欧美日韩视频在线观看免费 | 国产中文字幕一区二区 | 成 人 黄 色 视频 免费观看 | 国产精品二区在线 | 日韩成人一级大片 | 99这里都是精品 | 中文字幕一区二区在线播放 | 91免费的视频在线播放 | 亚洲精品成人av在线 | 激情五月亚洲 | 婷婷精品国产一区二区三区日韩 | 国产破处在线视频 | 久久国产精品第一页 | 婷婷色综合 | 97精品超碰一区二区三区 | 一区二区三区在线观看中文字幕 | 色 中文字幕 | 欧美性大胆 | 色综合久久五月天 | 久久精品99北条麻妃 | 99久久精品国产一区二区成人 | 人人干免费 | 91福利影院在线观看 | 欧美成人一区二区 | 字幕网资源站中文字幕 | 久久激五月天综合精品 | 日韩a在线播放 | 午夜国产在线 | 99免在线观看免费视频高清 | 黄色软件视频网站 | 日日操操操 | 青春草视频| 色婷婷导航 | 国产美女久久久 | 狠狠色狠狠色综合系列 | 久久国产亚洲精品 | 午夜免费福利片 | 操操操日日日干干干 | 人人藻人人澡人人爽 | 欧美一级日韩三级 | 在线观看日本高清mv视频 | 69亚洲精品 | 99精品国产一区二区三区麻豆 | 91福利视频网站 | 粉嫩一二三区 | 国产黄色精品在线 | 欧美日本国产在线观看 | 国产首页 | 亚洲国产97在线精品一区 | 亚洲黄色在线观看 | 久久96国产精品久久99软件 | 99视频免费播放 | av久久在线 | 九九热久久久 | 国产视频 亚洲视频 | 精品主播网红福利资源观看 | 福利电影一区二区 | 91精品伦理 | 久久另类小说 | 五月天狠狠操 | 欧美淫aaa免费观看 日韩激情免费视频 | 狠狠狠狠狠色综合 | 成人在线视频在线观看 | 国产小视频在线看 | 一本一道久久a久久综合蜜桃 | 91亚洲精品视频 | 亚洲成人国产精品 | 色婷婷综合视频在线观看 | 国产色a在线观看 | 91福利社区在线观看 | 日韩黄色免费在线观看 | 久久黄色小说视频 | 97成人精品 | 美女搞黄国产视频网站 | 九九精品视频在线观看 | 成年人免费av | 日韩,精品电影 | 麻豆极品 | 中文字幕观看在线 | 久久久精品二区 | 91精品一区二区在线观看 | 乱男乱女www7788 | 久久伊人五月天 | www.狠狠干 | 丁香花在线视频观看免费 | 欧美日本高清视频 | 亚洲春色综合另类校园电影 | 808电影免费观看三年 | 国产午夜精品视频 | 黄色av免费 | 国产视频二 | 久久一二区| 91在线小视频 | 亚洲网久久 | 亚洲男女精品 | 人人爽人人片 | 成人av在线直播 | 欧美精品一区二区免费 | 国产不卡av在线 | 国内久久精品视频 | 久久99久久久久久 | 国产精品入口麻豆www | 91av综合| 黄色av电影在线观看 | 九九精品无码 | 欧美一区二区精美视频 | 91香蕉嫩草 | 99久久精品免费视频 | 亚洲精品国产精品99久久 | 国产精品自产拍在线观看 | 国产1区在线| 激情在线免费视频 | 国产精品美女久久久久久久 | 久免费 | 九色porny真实丨国产18 | 婷婷四房综合激情五月 | 中文字幕电影高清在线观看 | 国产91小视频 | 亚洲观看黄色网 | 狠狠久久伊人 | 久久国产三级 | 99久久日韩精品免费热麻豆美女 | 欧美在线观看视频 | 精品国产诱惑 | 国产黑丝一区二区 | 国产九九精品 | 国产91精品一区二区绿帽 | 亚洲国产福利视频 | 一区二区三区精品在线视频 | 国产精品久久久久一区 | 中文字幕无吗 | 开心激情综合网 | 国产视频999 | 麻豆91精品| 亚洲专区免费观看 | 91久久黄色| 麻豆一区二区三区视频 | 69精品| 久久久久电影网站 | 亚洲精品影院在线观看 | 美女网站色 | 国产美女被啪进深处喷白浆视频 | 天天av综合网 | 免费观看视频的网站 | 国产又粗又长又硬免费视频 | 天天操狠狠操夜夜操 | 美女在线观看网站 | 夜夜爽天天爽 | 欧美成人亚洲 | 色av婷婷| 91九色国产在线 | 天天干天天草 | 国产精品久久久久久久久久久久久久 | 青青河边草免费观看 | 99精品色 | 国产剧情一区 | 日韩激情一二三区 | 色资源网在线观看 | 久久精品中文字幕少妇 | 夜夜躁狠狠躁日日躁视频黑人 | 婷婷亚洲五月色综合 | 蜜臀久久99静品久久久久久 | 天天综合日| 特黄色大片 | 国产精品毛片一区二区在线看 | 久草免费福利在线观看 | 午夜影院先 | 激情网在线视频 | 五月天婷婷免费视频 | 手机成人在线电影 | 国内精品久久久久影院优 | 国产在线观看你懂得 | 日韩免费电影在线观看 | 黄色日批网站 | 99精品免费久久久久久久久日本 | 91女神的呻吟细腰翘臀美女 | 操操日日 | 国产69久久精品成人看 | 国产亚洲在线观看 | 久久免费福利视频 | 亚洲三级在线免费观看 | 亚洲精品黄色 | 热re99久久精品国产66热 | 亚洲成av人电影 | 91探花系列在线播放 | 91网在线看| 视频精品一区二区三区 | 91成年视频| 999日韩| 99国产情侣在线播放 | 九九激情视频 | 久久久久久久国产精品视频 | 久久国产精品99久久久久久老狼 | 成人精品一区二区三区电影免费 | 91最新地址永久入口 | 狠狠狠色丁香综合久久天下网 | 午夜精品久久久久久久99水蜜桃 | 亚洲成人免费在线观看 | 日本爱爱免费视频 | 午夜精品视频免费在线观看 | 色综合久久久久网 | 欧美性春潮 | 最近能播放的中文字幕 | a在线一区 | 在线观看91精品视频 | 久久手机视频 | 三级黄色免费 | www五月| 久久嗨| 在线成人性视频 | 国产美女视频 | 亚洲精品国产精品国自产 | 久草视频观看 | 免费视频久久久 | 国产精品岛国久久久久久久久红粉 | 精品国产乱码久久久久久天美 | 综合五月婷婷 | 麻豆成人精品视频 | 久久久久久久国产精品视频 | 成人av免费网站 | 成人久久免费 | 波多野结衣在线观看一区二区三区 | 日日精品 | 久热av | 毛片1000部免费看 | 日韩午夜剧场 | 中文字幕av电影下载 | 久久美女高清视频 | 亚洲国产精品人久久电影 | 韩国在线一区二区 | 久久久久久黄色 | 国产免费区 | 一本到视频在线观看 | 国产 日韩 在线 亚洲 字幕 中文 | 久久久久久激情 | 在线观看中文字幕第一页 | 99在线观看免费视频精品观看 | 亚洲日韩精品欧美一区二区 | 69国产精品成人在线播放 | 正在播放一区 | 中文字幕成人在线观看 | 98久9在线 | 免费 | 伊人午夜| www日韩高清| 999男人的天堂 | 91热视频在线观看 | 超碰人人草 | 亚洲开心激情 | 国产精品一区二区三区99 | 日韩精品久久久久久中文字幕8 | 夜夜躁日日躁狠狠久久av | 91精品在线免费视频 | 久久理伦片 | 久久少妇| 亚洲综合色丁香婷婷六月图片 | 91探花在线视频 | 国产精品欧美在线 | 一区av在线播放 | 日韩欧美综合在线视频 | 国产极品尤物在线 | 久久久久久久久免费视频 | 久久免费在线视频 | 国产精品18久久久久白浆 | 一区二区三区日韩视频在线观看 | 18做爰免费视频网站 | 精品国产一区二区三区久久久蜜臀 | 精品国产一区二区三区四区vr | 久久久黄色 | 亚洲一级二级三级 | 国内精品视频在线播放 | 日韩欧美在线不卡 | 在线视频专区 | 亚洲天天摸日日摸天天欢 | 麻豆精品传媒视频 | 五月天综合网 | 日韩成人精品一区二区 | 午夜狠狠操 | 91福利视频网站 | 欧美极品xxxxx| 九9热这里真品2 | 91一区啪爱嗯打偷拍欧美 | 久久人人爽视频 | 婷婷伊人五月天 | 日韩黄色中文字幕 | 精品影院| 欧美久久影院 | 午夜精品一区二区三区免费 | 视频在线观看亚洲 | 久久久久久免费视频 | 国内视频在线观看 | 免费无遮挡动漫网站 | 天天干干 | 国产不卡精品 | 天堂av网站| 狠狠色伊人亚洲综合网站色 | 成人免费在线播放 | 人人爽人人爽人人片 | 成人三级视频 | 天天操天天操天天操天天操天天操 | 福利电影久久 | www.狠狠操.com | 久久国产欧美日韩精品 | 香蕉视频网站在线观看 | 麻花天美星空视频 | 99久久精品免费看国产一区二区三区 | 99国产成+人+综合+亚洲 欧美 | 国产一级二级三级在线观看 | 亚洲精品在线资源 | 深夜福利视频一区二区 | 欧美日韩成人 | 国产亚洲精品久久久网站好莱 | 国产99久久九九精品 | 亚洲资源网 | 国产午夜一级毛片 | 婷婷亚洲五月 | 亚洲欧洲精品一区 | 91香蕉视频在线下载 | 国产视频精品在线 | 啪啪免费观看网站 | 成人黄视频 | 国产一区网址 | 月丁香婷婷 | 少妇av网 | 96香蕉视频| 欧美精品久久久久久久久免 | 香蕉视频在线观看免费 | av网站在线免费观看 | 天天做天天射 | 亚洲国产视频直播 | 欧美日韩一区二区三区在线免费观看 | 欧美日韩在线电影 | 99热只有精品在线观看 | 亚洲天堂视频在线 | 亚在线播放中文视频 | 亚洲精品在线看 | 久久精品视频18 | 欧美精品久久久久久久久久白贞 | 亚洲精品午夜久久久 | 色的网站在线观看 | 精品国产中文字幕 | 久久综合五月天婷婷伊人 | 色99之美女主播在线视频 | 久久草在线视频国产 | 久久这里只有精品9 | 91精品成人 | 国产精品久久久 | 91av视频网站 | 丁香5月婷婷久久 | 麻豆一精品传二传媒短视频 | 亚洲精品字幕在线 | 99c视频在线| 免费久久99精品国产 | 视频二区在线视频 | 国产色婷婷在线 | 婷婷激情欧美 | 亚洲午夜精品久久久 | 蜜臀av网址 | 亚洲精品在线观看中文字幕 | 亚洲第五色综合网 | 国产精品欧美久久久久天天影视 | 中文字幕资源网在线观看 | 狠狠操导航 | 成人小视频在线免费观看 | 国产黄色免费观看 | 激情欧美一区二区三区免费看 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 99久久精品国产免费看不卡 | 天天干天天操天天操 | 午夜国产福利在线 | 国产一二三精品 | 国产成人福利片 | 久草在线在线精品观看 | 97色国产 | 五月婷婷欧美 | 97视频在线免费播放 | av不卡免费在线观看 | 999国内精品永久免费视频 | www.五月天婷婷 | 欧美午夜精品久久久久久孕妇 | 久久综合干 | 日韩高清三区 | 婷婷在线不卡 | 福利视频入口 | 国产精品9999| 美女黄色网在线播放 | 9久久精品| 免费在线观看午夜视频 | 中文字幕 国产 一区 | 美女一二三区 | 黄色小视频在线观看免费 | 国内精品福利视频 | 婷婷六月天在线 | 蜜臀av性久久久久av蜜臀三区 | 午夜av免费观看 | 婷婷综合亚洲 | 在线看一区 | 国产一级片视频 | 日韩一二区在线 | 国产欧美精品xxxx另类 | 天天干中文字幕 | 蜜桃视频日韩 | 国产精品美乳一区二区免费 | 69国产盗摄一区二区三区五区 | 在线视频亚洲 | 狠狠网亚洲精品 | 国产三级午夜理伦三级 | 丁香电影小说免费视频观看 | 九九激情视频 | 最新免费中文字幕 | 国产欧美在线一区二区三区 | 免费日韩一区二区 | 91精品亚洲影视在线观看 | 国产精品成人一区二区 | 欧美日韩国产mv | 日韩av电影免费观看 | 亚洲精品在线资源 | 亚洲精品xxxx| 九九九九九九精品 | 99情趣网视频 | 欧美日韩性视频在线 | 色综合天天射 | 日韩在线中文字幕视频 | 五月天堂网 | 亚洲综合射 | 成人午夜av电影 | 国产精品视频地址 | 最新国产一区二区三区 | 日一日操一操 | 中文字幕在线免费观看 | 国产精品毛片一区视频播不卡 | 日本精品一区二区在线观看 | 中文字幕国产一区 | 久久久久久网站 | www.伊人网| 久久无码av一区二区三区电影网 | 国产精选在线观看 | 国产成人久久av免费高清密臂 | 久久免费视频这里只有精品 | 国产亚洲免费的视频看 | 免费97视频 | 日韩精选在线观看 | 日韩手机在线 | 欧美性春潮 | 热久久影视 | 91九色网站 | 日韩福利在线观看 | 午夜免费视频网站 | 精品国产中文字幕 | 亚洲丁香日韩 | 国产亚洲欧美一区 | 久久精品区 | 97狠狠操| 人人澡人人澡人人 | 国产精品精品国产婷婷这里av | 国产在线不卡 | 97色在线观看免费视频 | 欧美黑人性爽 | 欧美日韩高清一区二区 | 99热.com| 美女视频黄是免费的 | 日本久久中文字幕 | 精品a视频| 久久久久久久福利 | 欧美污在线观看 | 四虎影视成人永久免费观看亚洲欧美 | 欧美另类视频 | 911久久香蕉国产线看观看 | 91在线日本 | 久久任你操 | 欧美色图亚洲图片 | 成年人免费观看国产 | 久久免费精品视频 | 超碰免费在线公开 | 91大神电影|