- 博客(1)
- 资源 (2)
- 收藏
- 关注
原创 MSSQL 拆分逗号隔开的数据 Split方法.
--MSSQL 拆分逗号隔开的数据 Split方法. --创建辅助表 CREATE TABLE Nums(Rn int NOT NULL PRIMARY KEY); GO ;WITH t1 AS (SELECT 1 AS c UNION ALL SELECT 1 ) --SELECT * FROM t1; ,t2 AS (SELECT 1 AS c FROM t1 AS a,t1
2013-12-10 12:45:46
5091
2
Team Foundation Server工具使用说明.ppt
简介:Team Foundation System(简称TFS) 是可使团队在生成产品或完成项目时加强协调与合作的一套工具和技术。Team Foundation 可增强团队成员之间的交流,跟踪工作状态,支持团队角色,制定团队过程并可以集成团队工具。
项目门户(Windows SharePoint 网站 ):存储文档、查找报告
团队资源管理器:工作项(Microsoft Project 和 Excel )、查看报告(状态和质量的生成报告)、管理文档(Office工具)、生成(Team Foundation Build )
源代码管理 :分支、合并、标签(源代码文件 、非源代码文件 )
2011-03-04
jspsmartupload上传下载,已修改过源代码!
解决jspsmartupload上传文件中文乱码
采用jspsmartupload上传文件时,如果文件名含有中文,在服务器端取得文件名是会出现乱码。如果表单项中填写了中文,一样会有乱码问题。看了下jspsmartupload的源码,改了两个地方,现在可以没有乱码问题了。
第一个地方,修改类SmartUpload中的upload()方法
//
//这次用jspSmartUpload做文件上传下载,
//该组件默认是GBK编码,当上传的文件名为中文时,
//我将文件名getBytes()下,将GBK改成UTF-8。测试了下,貌似没问题,
//突然有一次上传一文件时,发现最后几个字乱码,一直是??。在拿些文件测试,
// 后来知道了是当文件名为中文奇数时,会乱码,而且还上传不了。
// 再做测试,找原因,查看字符的长度,转成16进制看结果。觉得是jspSmartUpload组件对中文支持不足的问题。
http://ru-yi86.javaeye.com/blog/368553
Java代码
1. public void upload()
2. throws SmartUploadException, IOException, ServletException
3. {
4. int totalRead = 0;
5. int readBytes = 0;
6. long totalFileSize = 0L;
7. boolean found = false;
8. String dataHeader = new String();
9. String fieldName = new String();
10. String fileName = new String();
11. String fileExt = new String();
12. String filePathName = new String();
13. String contentType = new String();
14. String contentDisp = new String();
15. String typeMIME = new String();
16. String subTypeMIME = new String();
17. boolean isFile = false;
18. m_totalBytes = m_request.getContentLength();
19. m_binArray = new byte[m_totalBytes];
20. for(; totalRead < m_totalBytes; totalRead += readBytes)
21. try
22. {
23. m_request.getInputStream();
24. readBytes = m_request.getInputStream().read(m_binArray, totalRead, m_totalBytes - totalRead);
25. }
26. catch(Exception e)
27. {
28. throw new SmartUploadException("Unable to upload.");
29. }
30.
31. for(; !found && m_currentIndex < m_totalBytes; m_currentIndex++)
32. if(m_binArray[m_currentIndex] == 13)
33. found = true;
34. else
35. m_boundary = m_boundary + (char)m_binArray[m_currentIndex];
36.
37. if(m_currentIndex == 1)
38. return;
39. m_currentIndex++;
40. do
41. {
42. if(m_currentIndex >= m_totalBytes)
43. break;
44. dataHeader = getDataHeader();
45. m_currentIndex = m_currentIndex + 2;
46. isFile = dataHeader.indexOf("filename") > 0;
47. fieldName = getDataFieldValue(dataHeader, "name");
48. if(isFile)
49. {
50. filePathName = getDataFieldValue(dataHeader, "filename");
51. fileName = getFileName(filePathName);
52. fileExt = getFileExt(fileName);
53. contentType = getContentType(dataHeader);
54. contentDisp = getContentDisp(dataHeader);
55. typeMIME = getTypeMIME(contentType);
56. subTypeMIME = getSubTypeMIME(contentType);
57. }
58. getDataSection();
59. if(isFile && fileName.length() > 0)
60. {
61. if(m_deniedFilesList.contains(fileExt))
62. throw new SecurityException("The extension of the file is denied to be uploaded (1015).");
63. if(!m_allowedFilesList.isEmpty() && !m_allowedFilesList.contains(fileExt))
64. throw new SecurityException("The extension of the file is not allowed to be uploaded (1010).");
65. if(m_maxFileSize > (long)0 && (long)((m_endData - m_startData) + 1) > m_maxFileSize)
66. throw new SecurityException(String.valueOf((new StringBuffer("Size exceeded for this file : ")).append(fileName).append(" (1105).")));
67. totalFileSize += (m_endData - m_startData) + 1;
68. if(m_totalMaxFileSize > (long)0 && totalFileSize > m_totalMaxFileSize)
69. throw new SecurityException("Total File Size exceeded (1110).");
70. }
71. if(isFile)
72. {
73. com.jspsmart.upload.File newFile = new com.jspsmart.upload.File();
74. newFile.setParent(this);
75. newFile.setFieldName(fieldName);
76. newFile.setFileName(fileName);
77. newFile.setFileExt(fileExt);
78. newFile.setFilePathName(filePathName);
79. newFile.setIsMissing(filePathName.length() == 0);
80. newFile.setContentType(contentType);
81. newFile.setContentDisp(contentDisp);
82. newFile.setTypeMIME(typeMIME);
83. newFile.setSubTypeMIME(subTypeMIME);
84. if(contentType.indexOf("application/x-macbinary") > 0)
85. m_startData = m_startData + 128;
86. newFile.setSize((m_endData - m_startData) + 1);
87. newFile.setStartData(m_startData);
88. newFile.setEndData(m_endData);
89. m_files.addFile(newFile);
90. } else
91. {
92. /**
93. * 原来的代码
94. * String value = new String(m_binArray, m_startData, (m_endData - m_startData) + 1);
95. */
96. /**
97. * 解决取得request的参数的中文编码问题
98. */
99. String value = new String(m_binArray, m_startData, (m_endData - m_startData) + 1, "utf-8");
100.
101.
102. m_formRequest.putParameter(fieldName, value);
103. }
104. if((char)m_binArray[m_currentIndex + 1] == '-')
105. break;
106. m_currentIndex = m_currentIndex + 2;
107. } while(true);
108. }
第二个地方,修改类SmartUpload中的getDataHeader()方法 :
Java代码
1. private String getDataHeader()
2. {
3. int start = m_currentIndex;
4. int end = 0;
5. int len = 0;
6. boolean found = false;
7. while(!found)
8. if(m_binArray[m_currentIndex] == 13 && m_binArray[m_currentIndex + 2] == 13)
9. {
10. found = true;
11. end = m_currentIndex - 1;
12. m_currentIndex = m_currentIndex + 2;
13. } else
14. {
15. m_currentIndex++;
16. }
17.
18.
19. //原始代码
20. //String dataHeader = new String(m_binArray, start, (end - start) + 1);
21. /**
22. * 解决文件名的中文乱码问题
23. */
24. String dataHeader = null;
25. try {
26. dataHeader = new String(m_binArray, start, (end - start) + 1,"utf-8");
27. } catch (UnsupportedEncodingException e) {
28. e.printStackTrace();
29. }
30. return dataHeader;
31. }
2010-03-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人