upload.jsp 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405
  1. <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
  2. <%@ page import="java.sql.*"%>
  3. <%@ page import="java.io.*"%>
  4. <%@ page import="java.util.*"%>
  5. <%@ page import="java.util.regex.*"%>
  6. <%@ page import="com.ccgj.database.tool.*"%>
  7. <%@ page import="net.fiyu.edit.RemotePic"%>
  8. <jsp:useBean id="date" scope="page" class="net.fiyu.edit.TimeStamp"/>
  9. <%@ page import="net.fiyu.edit.UploadWebHelper,net.fiyu.edit.UploadBean"%>
  10. <%!
  11. // 参数变量
  12. String sType, sStyleName;
  13. //' 设置变量
  14. String sAllowExt, sUploadDir,sBaseUrl,sContentPath;
  15. int nAllowSize;
  16. //' 接口变量
  17. String sFileExt,sSaveFileName,sOriginalFileName,sPathFileName,FileName, nFileNum;
  18. String sAction;
  19. Connection connect = null;
  20. %>
  21. <%!
  22. /*' ============================================
  23. ' 去除Html格式,用于从数据库中取出值填入输入框时
  24. ' 注意:value="?"这边一定要用双引号
  25. ' ============================================*/
  26. public String inHTML(String str)
  27. {
  28. String sTemp;
  29. sTemp = str;
  30. if(sTemp.equals(""))
  31. {
  32. System.exit(0);
  33. }
  34. sTemp = sTemp.replaceAll("&", "&amp;");
  35. sTemp = sTemp.replaceAll("<", "&lt;");
  36. sTemp = sTemp.replaceAll(">", "&gt;");
  37. sTemp = sTemp.replaceAll("\"", "&quot;");
  38. return sTemp;
  39. }
  40. //初始化上传限制数据
  41. public void InitUpload(String realpath){
  42. UploadWebHelper uw = new UploadWebHelper();
  43. uw.filename = realpath+"WEB-INF/style.xml";
  44. uw.getInstance();
  45. UploadBean bean = uw.InitPara();
  46. try{
  47. sUploadDir = bean.getSuploaddir();
  48. //////////////
  49. ///add by zxl
  50. //if(!sUploadDir.endsWith(java.io.File.separator))
  51. // sUploadDir = sUploadDir + java.io.File.separator;
  52. if(!sUploadDir.endsWith("/"))
  53. sUploadDir = sUploadDir + "/";
  54. ///add by zxl end
  55. //System.out.println(sUploadDir);
  56. if(sType.equalsIgnoreCase("remote"))
  57. {
  58. sAllowExt = bean.getSremoteext();
  59. sAllowExt = sAllowExt + "|" + sAllowExt.toUpperCase();
  60. nAllowSize = Integer.parseInt(bean.getSremotesize()) ;
  61. //System.out.println(sAllowExt+nAllowSize);
  62. }
  63. else if(sType.equalsIgnoreCase("file"))
  64. {
  65. sAllowExt = bean.getSfileext();
  66. sAllowExt = sAllowExt + "|" + sAllowExt.toUpperCase();
  67. nAllowSize = Integer.parseInt(bean.getSfilesize());
  68. //System.out.println(sAllowExt+nAllowSize);
  69. }
  70. else if(sType.equalsIgnoreCase("media"))
  71. {
  72. sAllowExt = bean.getSmediaext();
  73. sAllowExt = sAllowExt + "|" + sAllowExt.toUpperCase();
  74. nAllowSize = Integer.parseInt(bean.getSmediasize());
  75. //System.out.println(sAllowExt+nAllowSize);
  76. }
  77. else if(sType.equalsIgnoreCase("flash"))
  78. {
  79. sAllowExt = bean.getSflashext();
  80. sAllowExt = sAllowExt + "|" + sAllowExt.toUpperCase();
  81. nAllowSize = Integer.parseInt(bean.getSflashsize());
  82. //System.out.println(sAllowExt+nAllowSize);
  83. }
  84. else
  85. {
  86. sAllowExt = bean.getSimageext();
  87. sAllowExt = sAllowExt + "|" + sAllowExt.toUpperCase();
  88. nAllowSize = Integer.parseInt(bean.getSimagesize());
  89. //System.out.println(sAllowExt+nAllowSize);
  90. }
  91. }
  92. catch(Exception e){
  93. e.printStackTrace();
  94. }
  95. }
  96. %>
  97. <%
  98. //设置类型
  99. sType=request.getParameter("type");
  100. if(sType==null)
  101. {
  102. sType="image";
  103. }
  104. else
  105. sType=request.getParameter("type").trim();
  106. //设置样式
  107. sStyleName=request.getParameter("style");
  108. System.out.println("sStyleName:"+sStyleName);
  109. if(sStyleName==null)
  110. {
  111. sStyleName="standard";
  112. }
  113. else
  114. sStyleName=request.getParameter("style").trim();
  115. //设置动作
  116. sAction=request.getParameter("action");
  117. System.out.println("sAction:"+sAction);
  118. if(sAction==null)
  119. {
  120. sAction="sun";
  121. }
  122. else
  123. sAction=request.getParameter("action").trim();
  124. %>
  125. <%
  126. //初始化上传变量
  127. InitUpload(config.getServletContext().getRealPath("/"));
  128. //断开数据库连接
  129. //sAction = UCase(Trim(Request.QueryString("action"))
  130. if(sAction.equalsIgnoreCase("remote"))
  131. { //远程自动获取
  132. String sContent="";
  133. String RemoteFileurl=null;
  134. String Protocol,sUrl;
  135. int Port;
  136. String LocalFileurl=null;
  137. String SrcFileurl=null;
  138. String SaveFileName=null;
  139. String sTemp[]=request.getParameterValues("eWebEditor_UploadText");
  140. for(int i=0;i<sTemp.length;i++)
  141. {
  142. sContent+=sTemp[i];
  143. }
  144. /* if(sContent==null)
  145. {
  146. sContent="sunshanfeng";
  147. }
  148. else
  149. {
  150. sContent=request.getParameter("eWebEditor_UploadText");
  151. }*/
  152. //System.out.println();
  153. //System.out.println();
  154. //System.out.println();
  155. //System.out.println();
  156. //System.out.println("替换前的html标记为:"+"\n"+sContent);
  157. if(sAllowExt!="")
  158. {
  159. Pattern pRemoteFileurl = Pattern.compile("((http|https|ftp|rtsp|mms):(//|\\\\){1}(([A-Za-z0-9_-])+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(\\S*/)((\\S)+[.]{1}("+sAllowExt+")))");//取得网页上URL的正则表达式
  160. Matcher mRemoteFileurl = pRemoteFileurl.matcher(sContent);//对传入的字符串进行匹配
  161. Protocol=request.getProtocol();//取得通讯的协议
  162. String ProtocolA[]=Protocol.split("/");//取得协议前面的字母,如HTTP/1.1,变为"HTTP","1.1"
  163. sUrl = ProtocolA[0]+"://"+request.getServerName();//取得本地URL路径,如http://localhost
  164. //ProtocolA[]=null;
  165. Port=request.getServerPort();//取得端口值
  166. if(Port!=80)
  167. {//查看端口是否为80,如果不是还需要在联接上加上端口
  168. sUrl=sUrl+":"+Port;
  169. }
  170. String context=request.getContextPath();
  171. sUrl=sUrl+context+"/"+sUploadDir;
  172. //System.out.println(sUrl);
  173. StringBuffer sb=new StringBuffer();
  174. boolean result=mRemoteFileurl.find();
  175. int i=0;
  176. while(result)
  177. {
  178. i++;
  179. RemoteFileurl=mRemoteFileurl.group(0);
  180. //System.out.println();
  181. //System.out.println();
  182. //System.out.println();
  183. //System.out.println();
  184. //System.out.println("需要替换的远程连接:"+"\n"+RemoteFileurl);
  185. sOriginalFileName=RemoteFileurl.substring(RemoteFileurl.lastIndexOf("/"));
  186. Pattern pFileType=Pattern.compile("[.]{1}("+sAllowExt+")");//二次匹配取得文件的类型
  187. Matcher mFileType=pFileType.matcher(RemoteFileurl);
  188. while(mFileType.find())
  189. {
  190. String SaveFileType=mFileType.group();
  191. LocalFileurl=sUploadDir+(String)date.Time_Stamp()+i+SaveFileType;//文件的路径,以时间戳命名
  192. }
  193. String LoadFile=sUploadDir.substring(0,sUploadDir.length()-1); SaveFileName=config.getServletContext().getRealPath("/")+LoadFile+"\\"+LocalFileurl.substring(LocalFileurl.lastIndexOf("/")+1);
  194. //System.out.println();
  195. //System.out.println();
  196. //System.out.println();
  197. //System.out.println("远程文件保存的路径和文件名:"+"\n"+SaveFileName);
  198. sSaveFileName=LocalFileurl.substring(LocalFileurl.lastIndexOf("/"));
  199. RemotePic Down=new RemotePic();
  200. Down.picurl=RemoteFileurl;
  201. Down.savepath=SaveFileName;
  202. if (Down.download())//如果上载保存成功,则更换html标记里的文件路径
  203. {
  204. mRemoteFileurl.appendReplacement(sb,LocalFileurl);//替换路径
  205. }
  206. result=mRemoteFileurl.find();
  207. }
  208. mRemoteFileurl.appendTail(sb);
  209. sContent=sb.toString();
  210. }
  211. sContent=inHTML(sContent);
  212. //System.out.println();
  213. //System.out.println();
  214. //System.out.println();
  215. //System.out.print("替换后的html标记:"+"\n"+sContent);
  216. out.println("<HTML><HEAD><TITLE>远程上传</TITLE><meta http-equiv='Content-Type' content='text/html; charset=fbk'></head><body>");
  217. out.print("<input type=hidden id=UploadText value=\"");
  218. out.print(sContent);
  219. out.println("\">");
  220. out.println("</body></html>");
  221. out.println("<script language=javascript>");
  222. out.print("parent.setHTML(UploadText.value);");
  223. //taurus 2008-04-17 修改开始
  224. // out.print("try{parent.addUploadFile('");//为什么只取一半的值?且只取复制网页插入位置之前的值?
  225. // out.print(sOriginalFileName);
  226. // out.print("', '");
  227. // out.print(sSaveFileName);
  228. // out.print("', '");
  229. // out.print(SaveFileName);
  230. // out.println("');} catch(e){} parent.remoteUploadOK();");
  231. //taurus 2008-04-17 修改结束 下边一行是本次添加的
  232. out.println("parent.remoteUploadOK();");
  233. out.println("</script>");
  234. //DoRemote();
  235. }
  236. else if(sAction.equalsIgnoreCase("save"))
  237. {
  238. //显示上传菜单
  239. out.println("<HTML>");
  240. out.println("<HEAD>");
  241. out.println("<TITLE>文件上传</TITLE>");
  242. out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gbk\">");
  243. out.println("<style type=\"text/css\">");
  244. out.println("body, a, table, div, span, td, th, input, select{font:9pt;font-family: \"宋体\", Verdana, Arial, Helvetica, sans-serif;}");
  245. out.println("body {padding:0px;margin:0px}");
  246. out.println("</style>");
  247. out.println("<script language=\"JavaScript\" src=\"dialog/dialog.js\">");
  248. out.println("</script>");
  249. out.println("</head>");
  250. out.println("<body bgcolor=menu>");
  251. out.print("<form action=\"?action=save&type=");//注意此处为什么不用println()
  252. out.print(sType);
  253. out.print("&style=");
  254. out.print(sStyleName);
  255. out.println("\" method=post name=myform enctype=\"multipart/form-data\">");
  256. out.println("<input type=file name=uploadfile size=1 style=\"width:100%\" onchange=\"originalfile.value=this.value\">");
  257. out.println("<input type=hidden name=originalfile value=\"\">");
  258. out.println("</form>");
  259. out.println("<script language=javascript>");
  260. out.print("var sAllowExt = \"");
  261. out.print(sAllowExt);
  262. out.println("\";");
  263. out.println("// 检测上传表单");
  264. out.println("function CheckUploadForm() {");
  265. out.println("if (!IsExt(document.myform.uploadfile.value,sAllowExt)){");
  266. out.println("parent.UploadError(\"提示:\\n\\n请选择一个有效的文件,\\n支持的格式有(\"+sAllowExt+\")!\");");
  267. out.println("return false;");
  268. out.println("}");
  269. out.println("return true");
  270. out.println("}");
  271. out.println("// 提交事件加入检测表单");
  272. out.println("var oForm = document.myform;");
  273. out.println("oForm.attachEvent(\"onsubmit\", CheckUploadForm) ;");
  274. out.println("if (! oForm.submitUpload) oForm.submitUpload = new Array() ;");
  275. out.println("oForm.submitUpload[oForm.submitUpload.length] = CheckUploadForm ;");
  276. out.println("if (! oForm.originalSubmit) {");
  277. out.println("oForm.originalSubmit = oForm.submit ;");
  278. out.println("oForm.submit = function() {");
  279. out.println("if (this.submitUpload) {");
  280. out.println("for (var i = 0 ; i < this.submitUpload.length ; i++) {");
  281. out.println("this.submitUpload[i]() ;");
  282. out.println(" }");
  283. out.println(" }");
  284. out.println(" this.originalSubmit() ;");
  285. out.println(" }");
  286. out.println("}");
  287. out.println("// 上传表单已装入完成");
  288. out.println("try {");
  289. out.println(" parent.UploadLoaded();");
  290. out.println("}");
  291. out.println("catch(e){");
  292. out.println("}");
  293. out.println("</script>");
  294. out.println("</body>");
  295. out.println("</html>");
  296. //存文件
  297. //DoSave();
  298. SmartUpload up = new SmartUpload();
  299. //初始化上传组件
  300. up.initialize(pageContext);
  301. //设置上传文件大小
  302. //up.setMaxFileSize(nAllowSize*1024);
  303. //设置上传文件类型
  304. String setExt=sAllowExt.replace('|',',');
  305. up.setAllowedFilesList(setExt);
  306. // Upload
  307. up.upload();
  308. // Select each file
  309. for (int i=0;i<up.getFiles().getCount();i++){
  310. // Retreive the current file
  311. com.ccgj.database.tool.File myFile = up.getFiles().getFile(i);
  312. if (!myFile.isMissing()) {
  313. FileName=(String)date.Time_Stamp();
  314. sOriginalFileName=myFile.getFileName();
  315. myFile.saveAs("/"+sUploadDir+FileName+"."+myFile.getFileExt());
  316. sSaveFileName=FileName+"."+myFile.getFileExt();
  317. sPathFileName=sUploadDir+sSaveFileName;
  318. //System.out.println(sPathFileName);
  319. }
  320. }
  321. out.println("<script language=javascript>");
  322. out.print("parent.UploadSaved('");
  323. out.print(sSaveFileName);
  324. out.print("');var obj=parent.dialogArguments.dialogArguments;if (!obj) obj=parent.dialogArguments;try{obj.addUploadFile('");
  325. out.print(sOriginalFileName);
  326. out.print("', '");
  327. out.print(sSaveFileName);
  328. out.print("', '");
  329. out.print(sPathFileName);
  330. out.print("');} catch(e){}");
  331. out.println(";history.back()</script>");
  332. }
  333. else
  334. {
  335. //显示上传表单
  336. out.println("<HTML>");
  337. out.println("<HEAD>");
  338. out.println("<TITLE>文件上传</TITLE>");
  339. out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gbk\">");
  340. out.println("<style type=\"text/css\">");
  341. out.println("body, a, table, div, span, td, th, input, select{font:9pt;font-family: \"宋体\", Verdana, Arial, Helvetica, sans-serif;}");
  342. out.println("body {padding:0px;margin:0px}");
  343. out.println("</style>");
  344. out.println("<script language=\"JavaScript\" src=\"dialog/dialog.js\">");
  345. out.println("</script>");
  346. out.println("</head>");
  347. out.println("<body bgcolor=menu>");
  348. out.print("<form action=\"?action=save&type=");
  349. out.print(sType);
  350. out.print("&style=");
  351. out.print(sStyleName);
  352. out.println("\" method=post name=myform enctype=\"multipart/form-data\">");
  353. out.println("<input type=file name=uploadfile size=1 style=\"width:100%\" onchange=\"originalfile.value=this.value\">");
  354. out.println("<input type=hidden name=originalfile value=\"\">");
  355. out.println("</form>");
  356. out.println("<script language=javascript>");
  357. out.print("var sAllowExt = \"");
  358. out.print(sAllowExt);
  359. out.println("\";");
  360. out.println("// 检测上传表单");
  361. out.println("function CheckUploadForm() {");
  362. out.println(" if (!IsExt(document.myform.uploadfile.value,sAllowExt)){");
  363. out.println(" parent.UploadError(\"提示:\\n\\n请选择一个有效的文件,\\n支持的格式有(\"+sAllowExt+\")!\");");
  364. out.println(" return false;");
  365. out.println(" }");
  366. out.println(" return true");
  367. out.println("}");
  368. out.println("// 提交事件加入检测表单");
  369. out.println("var oForm = document.myform ;");
  370. out.println("oForm.attachEvent(\"onsubmit\", CheckUploadForm) ;");
  371. out.println("if (! oForm.submitUpload) oForm.submitUpload = new Array() ;");
  372. out.println("oForm.submitUpload[oForm.submitUpload.length] = CheckUploadForm ;");
  373. out.println("if (! oForm.originalSubmit) {");
  374. out.println(" oForm.originalSubmit = oForm.submit ;");
  375. out.println(" oForm.submit = function() {");
  376. out.println(" if (this.submitUpload) {");
  377. out.println(" for (var i = 0 ; i < this.submitUpload.length ; i++) {");
  378. out.println(" this.submitUpload[i]() ;");
  379. out.println(" }");
  380. out.println(" }");
  381. out.println(" this.originalSubmit() ;");
  382. out.println(" }");
  383. out.println("}");
  384. out.println("// 上传表单已装入完成");
  385. out.println("try {");
  386. out.println(" parent.UploadLoaded();");
  387. out.println("}");
  388. out.println("catch(e){");
  389. out.println("}");
  390. out.println("</script>");
  391. out.println("</body>");
  392. out.println("</html>");
  393. //out.println("123");
  394. }
  395. %>