handlers.form.upload.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. var formChecker = null;
  2. function preLoad() {
  3. if (!this.support.loading) {
  4. alert("使用SWFUpload Flash,您需要 Player 9.028或以上.");
  5. return false;
  6. }
  7. }
  8. function loadFailed() {
  9. alert("加载 SWFUpload 失败. ");
  10. }
  11. // Called by the submit button to start the upload
  12. function doSubmit() {
  13. try {
  14. swfu.startUpload();
  15. } catch (ex) {
  16. }
  17. return false;
  18. }
  19. // Called by the queue complete handler to submit the form
  20. function uploadDone() {
  21. try {
  22. document.forms[0].submit();
  23. } catch (ex) {
  24. alert("表单提交失败!");
  25. }
  26. }
  27. function fileDialogStart() {
  28. var txtFileName = document.getElementById("txtFileName");
  29. txtFileName.value = "";
  30. this.cancelUpload();
  31. }
  32. function fileQueueError(file, errorCode, message) {
  33. try {
  34. // Handle this error separately because we don't want to create a FileProgress element for it.
  35. switch (errorCode) {
  36. case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:
  37. alert("You have attempted to queue too many files.\n" + (message === 0 ? "You have reached the upload limit." : "You may select " + (message > 1 ? "up to " + message + " files." : "one file.")));
  38. return;
  39. case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
  40. alert("The file you selected is too big.");
  41. this.debug("Error Code: File too big, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
  42. return;
  43. case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
  44. alert("The file you selected is empty. Please select another file.");
  45. this.debug("Error Code: Zero byte file, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
  46. return;
  47. case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
  48. alert("The file you choose is not an allowed file type.");
  49. this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
  50. return;
  51. default:
  52. alert("An error occurred in the upload. Try again later.");
  53. this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
  54. return;
  55. }
  56. } catch (e) {
  57. }
  58. }
  59. function fileQueued(file) {
  60. try {
  61. var txtFileName = document.getElementById("txtFileName");
  62. txtFileName.value = file.name;
  63. } catch (e) {
  64. }
  65. }
  66. function fileDialogComplete(numFilesSelected, numFilesQueued) {
  67. //validateForm();
  68. }
  69. function uploadProgress(file, bytesLoaded, bytesTotal) {
  70. try {
  71. var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);
  72. file.id = "singlefile"; // This makes it so FileProgress only makes a single UI element, instead of one for each file
  73. var progress = new FileProgress(file, this.customSettings.progress_target);
  74. progress.setProgress(percent);
  75. progress.setStatus("上传中...");
  76. } catch (e) {
  77. }
  78. }
  79. function uploadSuccess(file, serverData) {
  80. try {
  81. file.id = "singlefile"; // This makes it so FileProgress only makes a single UI element, instead of one for each file
  82. var progress = new FileProgress(file, this.customSettings.progress_target);
  83. progress.setComplete();
  84. progress.setStatus("完成.");
  85. progress.toggleCancel(false);
  86. if (serverData === " ") {
  87. this.customSettings.upload_successful = false;
  88. } else {
  89. this.customSettings.upload_successful = true;
  90. }
  91. } catch (e) {
  92. }
  93. }
  94. function uploadError(file, errorCode, message) {
  95. try {
  96. if (errorCode === SWFUpload.UPLOAD_ERROR.FILE_CANCELLED) {
  97. // Don't show cancelled error boxes
  98. return;
  99. }
  100. var txtFileName = document.getElementById("txtFileName");
  101. txtFileName.value = "";
  102. validateForm();
  103. // Handle this error separately because we don't want to create a FileProgress element for it.
  104. switch (errorCode) {
  105. case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:
  106. alert("There was a configuration error. You will not be able to upload a resume at this time.");
  107. this.debug("Error Code: No backend file, File name: " + file.name + ", Message: " + message);
  108. return;
  109. case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
  110. alert("You may only upload 1 file.");
  111. this.debug("Error Code: Upload Limit Exceeded, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
  112. return;
  113. case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
  114. case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
  115. break;
  116. default:
  117. alert("An error occurred in the upload. Try again later.");
  118. this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
  119. return;
  120. }
  121. file.id = "singlefile"; // This makes it so FileProgress only makes a single UI element, instead of one for each file
  122. var progress = new FileProgress(file, this.customSettings.progress_target);
  123. progress.setError();
  124. progress.toggleCancel(false);
  125. switch (errorCode) {
  126. case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
  127. progress.setStatus("Upload Error");
  128. this.debug("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message);
  129. break;
  130. case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
  131. progress.setStatus("Upload Failed.");
  132. this.debug("Error Code: Upload Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
  133. break;
  134. case SWFUpload.UPLOAD_ERROR.IO_ERROR:
  135. progress.setStatus("Server (IO) Error");
  136. this.debug("Error Code: IO Error, File name: " + file.name + ", Message: " + message);
  137. break;
  138. case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
  139. progress.setStatus("Security Error");
  140. this.debug("Error Code: Security Error, File name: " + file.name + ", Message: " + message);
  141. break;
  142. case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
  143. progress.setStatus("Upload Cancelled");
  144. this.debug("Error Code: Upload Cancelled, File name: " + file.name + ", Message: " + message);
  145. break;
  146. case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
  147. progress.setStatus("Upload Stopped");
  148. this.debug("Error Code: Upload Stopped, File name: " + file.name + ", Message: " + message);
  149. break;
  150. }
  151. } catch (ex) {
  152. }
  153. }