A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%@ taglib uri="/struts-tags" prefix="s" %>
  3. <%
  4. String path = request.getContextPath();
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  6. %>

  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8. <html>
  9. <FONT color=red><script type="text/javascript" src="dwr/engine.js"></script>
  10. <script type="text/javascript" src="dwr/util.js"></script>
  11. <script type="text/javascript" src="dwr/interface/checkUname.js"></script></FONT>
  12. <script type="text/javascript">
  13. function check(uname){
  14. checkUname.checkUname(uname,callBack);
  15. }
  16. function callBack(data){
  17. if(data==false){
  18. alert("用户名已存在");
  19. return false;
  20. }
  21. if(data){
  22. var picture = document.getElementById("file2").value.toLowerCase();
  23. document.getElementById("file").value = picture;
  24. document.ss.submit();
  25. }
  26. else
  27. return false;
  28. }
  29. </script>
  30. <head>
  31. <base href="<%=basePath%>">
  32. <title>添加</title>
  33. </head>

  34. <body>
  35. <s:form action="<FONT color=red>user/LoginAction!add.action</FONT>" method="post" enctype="multipart/form-data" id="ss">
  36. <s:token />
  37. <table>
  38. <td>
  39. <tr><td colspan="2"></td></tr>
  40. <tr><td>用户名</td><td align="left"><input type="text" name="uname" id="uname" /></td></tr>
  41. <tr><td>密  码</td><td align="left"><input type="password" name="pwd" id="pwd"/></td></tr>
  42. <tr><td></td><td align="left">
  43. <s:file name="file2" label="照片" id="file2" contenteditable="false" onchange="viewimg()"/>
  44. <input type="hidden" name="file" id="file"/>
  45. </td></tr>
  46. </td>
  47. </table>
  48. <input type="button" value="添加" onclick="jiaoyan()"/>
  49. <input type="button" value="返回" onclick="javascript:window.location.href='user/LoginAction!sel.action'"/>
  50. <br/>

  51. </s:form>

  52. <script type="text/javascript">
  53. <FONT color=red>// 显示图片的js</FONT>
  54. function viewimg(){
  55. var imgup=document.getElementById("file2");
  56. var imgpath=getPath(imgup);
  57. //判断是否是图片格式
  58. var imgname=imgup.value.substring(imgup.value.lastIndexOf("."),imgup.value.length)
  59. imgname=imgname.toLowerCase()
  60. if <FONT color=red>((imgname!='.jpg')&&(imgname!='.gif')&&(imgname!='.jpeg')&&(imgname!='.png')&&(imgname!='.bmp')){</FONT>
  61. alert("请选择图片文件,谢谢!");
  62. imgup.focus();
  63. //清空file里面的值
  64. imgup.select();
  65. document.selection.clear();
  66. }
  67. else{
  68. //显示图片
  69. document.getElementById("sig_preview").innerHTML="<img src='"+imgpath+"' border=0 width=60 height=60>"
  70. }
  71. }
  72. <FONT color=red>//该函数解决iE下路径问题。兼容ie6,7,firefox add by exceljava 2010-1-6
  73. </FONT>function getPath(obj){
  74. if(obj){
  75. if (window.navigator.userAgent.indexOf("MSIE")>=1){
  76. obj.select();
  77. return document.selection.createRange().text;
  78. }else if(window.navigator.userAgent.indexOf("Firefox")>=1){
  79. if(obj.files){
  80. return obj.files.item(0).getAsDataURL();
  81. }
  82. return obj.value;
  83. }
  84. return obj.value;
  85. }
  86. }
  87. <FONT color=red>//校验</FONT>
  88. function jiaoyan(){
  89. var uname = document.getElementById("uname").value;
  90. var pwd = document.getElementById("pwd").value
  91. if(uname==undefined||uname==""){
  92. alert("请填写用户名!");
  93. return false;
  94. }
  95. if(pwd==undefined||pwd==""){
  96. alert("请填写密码!");
  97. return false;
  98. }
  99. var picture = document.getElementById("file2").value.toLowerCase();
  100. if(picture!=""){
  101. // alert("请选择一张照片");
  102. // return false;
  103. //} else {
  104. <FONT color=red>var regex = /\.(gif|bmp|jpg|png|jpeg)$$$$/;
  105. </FONT>if (!regex.test(picture)){
  106. alert("上传的文件格式不正确!");
  107. return false;
  108. }
  109. }

  110. var uname = document.getElementById("uname").value;
  111. return check(uname);

  112. }

  113. </script>
  114. <div id="sig_preview"></div>
  115. </body>
  116. </html>
复制代码
代码解读 1. 在jsp调用 action中的方法   user/LoginAction!add.action
                2.照片上传的问题
                3.浏览器兼容问题
                4.dwr 的使用问题 (关于ajax的)
                5.是否是图片两种验证方式

文件上传几个问题
1.什么时候调用 比如add方法你就要调用
2.两种方式 一种直接存数据库 二种存项目文件中  数据库表中保存路径
3.本实例采用的是 二 那么需要接受什么参数 怎么处理 (给个源码)
  1. public class FileHelp {
  2. //获得存放图片项目路径
  3. public static String getPath(){
  4. HttpServletRequest request = ServletActionContext.getRequest();
  5. String realPath = request.getSession().getServletContext().getRealPath("");

  6. return realPath;
  7. }
  8. /* * 获取一个记录编号 * 格式:12 位时间+业务编号+随即数 *
  9. * 例如:100330101028+04+893 (2010-03-30-10:20:28, 业务号是04, 随机数893 )
  10. * *@param btype 业务类型编号 员工业务01 招聘业务02……
  11. * *@return code 构造的一个记录编号
  12. */
  13. public static String getNo(){
  14. //返回的code String code;
  15. //系统当前时间 12位
  16. SimpleDateFormat sdf=new SimpleDateFormat("yyMMddhhmmss");
  17. String nowDate=sdf.format(new java.util.Date());
  18. //随机数
  19. String iRandom = Math.round(Math.random()*900 )+100 +"";
  20. //整合一个code
  21. return nowDate + iRandom ;
  22. }
  23. //上传
  24. public static String upload(File file,String name) throws Exception{
  25. // 获得上传图片的后缀名
  26. String aa = name.substring(name.lastIndexOf("."));
  27. // 在给定的路径下存放图片信息
  28. String no = FileHelp.getNo();
  29. File parentDir = new File(FileHelp.getPath()+"\\upload", no + aa);
  30. String pname = "upload\\"+ no + aa;
  31. // 读下给定路径的文件
  32. File src = new File(FileHelp.getPath());
  33. // 判断文件是否存在,不存在进行创建
  34. if (!src.exists()) {
  35. src.mkdirs();
  36. }
  37. // 创建输入流
  38. InputStream in = null;
  39. // 创建输出流
  40. OutputStream out = null;
  41. try {
  42. // 上传文件写入请求流中
  43. in = new FileInputStream(file);
  44. // 读取流中的数据
  45. byte[] b = new byte[in.available()];
  46. in.read(b);
  47. // 把本地读到的文件放到输出流里
  48. out = new FileOutputStream(parentDir);
  49. // 写出输出流
  50. out.write(b);
  51. } catch (Exception e) {
  52. e.printStackTrace();
  53. throw e;
  54. } finally {
  55. // 及时关闭输入和输出流
  56. if (in != null)
  57. in.close();
  58. if (out != null)
  59. out.close();
  60. }
  61. return pname;
  62. }
  63. }
复制代码
我想问的是 这个实例感觉跟 ssh上传图片没什么关系
主要是通过这个FileHelp类实现的 谁有通过ssh 上传图片的源码










评分

参与人数 1技术分 +1 收起 理由
狼王 + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
终于有技术分类 感谢赞美啊     我都写10几个帖子了 终于有分类 谢谢狼王  我骄傲
我会继续努力的{:soso_e152:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马