a_ddimgview.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. jQuery.fn.extend({
  2. uploadPreview: function (opts) {
  3. var _self = this,
  4. _this = $(this);
  5. opts = jQuery.extend({
  6. Img: "ImgPr",
  7. Width: 108,
  8. Height: 108,
  9. MaxSize: 500,
  10. ImgType: ["gif", "jpeg", "jpg", "png"],
  11. Callback: function () {}
  12. }, opts || {});
  13. _self.getObjectURL = function (file) {
  14. var url = null;
  15. if (window.createObjectURL != undefined) {
  16. url = window.createObjectURL(file)
  17. } else if (window.URL != undefined) {
  18. url = window.URL.createObjectURL(file)
  19. } else if (window.webkitURL != undefined) {
  20. url = window.webkitURL.createObjectURL(file)
  21. }
  22. return url
  23. };
  24. _this.change(function () {
  25. if (this.value) {
  26. //alert(this.value);
  27. if (!RegExp("\.(" + opts.ImgType.join("|") + ")$", "i").test(this.value.toLowerCase())) {
  28. alert("选择文件错误,图片类型必须是" + opts.ImgType.join(",") + "中的一种");
  29. return false;
  30. this.value = "";
  31. }
  32. if ($.browser.msie) {
  33. try {
  34. $("#" + opts.Img).attr('src', _self.getObjectURL(this.files[0]));
  35. } catch (e) {
  36. var src = "";
  37. var obj = $("#" + opts.Img);
  38. var div = obj.parent("div")[0];
  39. _self.select();
  40. if (top != self) {
  41. window.parent.document.body.focus()
  42. } else {
  43. _self.blur()
  44. }
  45. src = document.selection.createRange().text;
  46. document.selection.empty();
  47. obj.hide();
  48. obj.parent("div").css({
  49. 'filter': 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)',
  50. 'width': opts.Width + 'px',
  51. 'height': opts.Height + 'px'
  52. });
  53. div.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = src
  54. }
  55. } else {
  56. if(this.files[0].size/1024 > opts.MaxSize){
  57. this.value = "";
  58. alert("图片不能超过"+opts.MaxSize+"KB,请缩小后再上传或换过一张图片。");
  59. return false;
  60. }else{
  61. $("#" + opts.Img).attr('src', _self.getObjectURL(this.files[0]))
  62. }
  63. }
  64. opts.Callback()
  65. }
  66. })
  67. }
  68. });