📄 __uploadaction.java
字号:
//INCLUDE /top.jsp //[ /uploadAction.jsp; Line: 3] _writeText(response, out, _wl_block2, _wl_block2Bytes); _writeText(response, out, _wl_block3, _wl_block3Bytes); _writeText(response, out, _wl_block4, _wl_block4Bytes); //[ /uploadAction.jsp; Line: 40] request.setCharacterEncoding("gb2312"); //[ /uploadAction.jsp; Line: 41] //response.setContentType("text/html; charset=GB2312"); //[ /uploadAction.jsp; Line: 42] double softwareSize = 0; //[ /uploadAction.jsp; Line: 43] double size; //[ /uploadAction.jsp; Line: 44] String softwareSizeStr = ""; //[ /uploadAction.jsp; Line: 45] String turefileAbsolutePath = ""; //[ /uploadAction.jsp; Line: 46] String dir = "E:/Download"; //[ /uploadAction.jsp; Line: 47] File updir = new File(dir); //Download文件不存在的话,在E盘目录下创建一个Download文件夹 //[ /uploadAction.jsp; Line: 48] updir.mkdir(); //创建此抽象路径名指定的目录 //[ /uploadAction.jsp; Line: 49] try { //[ /uploadAction.jsp; Line: 50] //建立临时文件,并将客户提交的全部信息存入。 //[ /uploadAction.jsp; Line: 51] //File(String parent, String child)根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。 //[ /uploadAction.jsp; Line: 52] File tempfile = new File(dir, "TempInformation"); //[ /uploadAction.jsp; Line: 53] System.out.println("tempfileName: " + tempfile.getName()); //[ /uploadAction.jsp; Line: 54] System.out.println("tempfileAbsolutePath: " + tempfile.getAbsolutePath()); //[ /uploadAction.jsp; Line: 55] //FileOutputStream(File file)创建一个向指定 File 对象表示的文件中写入数据的文件输出流。 //[ /uploadAction.jsp; Line: 56] FileOutputStream fout = new FileOutputStream(tempfile); //[ /uploadAction.jsp; Line: 57] InputStream in = request.getInputStream(); //[ /uploadAction.jsp; Line: 58] byte b[] = new byte[1024]; //[ /uploadAction.jsp; Line: 59] int n = 0; //[ /uploadAction.jsp; Line: 60] while ((n = in.read(b)) != -1) { //[ /uploadAction.jsp; Line: 61] //read(byte[] b)从输入流中读取一定数量的字节并将其存储在缓冲区数组 b 中。 //[ /uploadAction.jsp; Line: 62] fout.write(b, 0, n); //write(byte[] b, int off, int len)将指定字节数组中从偏移量 off 开始的 len 个字节写入此文件输出流。 //[ /uploadAction.jsp; Line: 63] } //[ /uploadAction.jsp; Line: 64] fout.close(); //[ /uploadAction.jsp; Line: 65] in.close(); //[ /uploadAction.jsp; Line: 66] //打开临时文件 //[ /uploadAction.jsp; Line: 67] //RandomAccessFile(File file, String mode)创建从中读取和向其中写入(可选)的随机存取文件流,该文件由 File 参数指定。 //[ /uploadAction.jsp; Line: 68] RandomAccessFile raf = new RandomAccessFile(tempfile, "r"); //[ /uploadAction.jsp; Line: 69] String secondLine = raf.readLine(); //[ /uploadAction.jsp; Line: 70] //System.out.println(secondLine); //[ /uploadAction.jsp; Line: 71] secondLine = raf.readLine(); //[ /uploadAction.jsp; Line: 72] //System.out.println(secondLine); //[ /uploadAction.jsp; Line: 73] int position = secondLine.lastIndexOf('\\'); //[ /uploadAction.jsp; Line: 74] if (position != -1) { //[ /uploadAction.jsp; Line: 75] //获得客户提交的文件名字。 //[ /uploadAction.jsp; Line: 76] String filename = secondLine.substring(position + 1, secondLine.length() - 1); //[ /uploadAction.jsp; Line: 77] filename = new String(filename.getBytes("iso8859-1"), "gb2312"); //[ /uploadAction.jsp; Line: 78] System.out.println("filename: " + filename); //[ /uploadAction.jsp; Line: 79] int position2 = secondLine.lastIndexOf(':'); //[ /uploadAction.jsp; Line: 80] String filePath = secondLine.substring(position2 - 1, secondLine.length() - 1); //[ /uploadAction.jsp; Line: 81] System.out.println("filePath: " + filePath); //[ /uploadAction.jsp; Line: 82] //获得临时文件Information的第4行结束和倒数第六行结束的位置,这两者之间的数据就是客户要提交的文件的内容。 //[ /uploadAction.jsp; Line: 83] //获取这段内容并存入另外一个文件中,另一个文件的名字与客户提交的文件名字相同。 //[ /uploadAction.jsp; Line: 84] //seek(long pos)设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。 //[ /uploadAction.jsp; Line: 85] raf.seek(0); //[ /uploadAction.jsp; Line: 86] long forthEndPosition = 0; //[ /uploadAction.jsp; Line: 87] int forth = 1; //[ /uploadAction.jsp; Line: 88] //readByte()从此文件读取一个有符号的八位值。 //[ /uploadAction.jsp; Line: 89] while ((n = raf.readByte()) != -1 && (forth <= 4)) { //[ /uploadAction.jsp; Line: 90] if (n == '\n') { //[ /uploadAction.jsp; Line: 91] forth++; //[ /uploadAction.jsp; Line: 92] //getFilePointer()返回此文件中的当前偏移量。 //[ /uploadAction.jsp; Line: 93] forthEndPosition = raf.getFilePointer(); //[ /uploadAction.jsp; Line: 94] } //[ /uploadAction.jsp; Line: 95] } //[ /uploadAction.jsp; Line: 96] raf.seek(raf.length()); //[ /uploadAction.jsp; Line: 97] long endPosition = raf.getFilePointer(); //[ /uploadAction.jsp; Line: 98] long mark = endPosition; //[ /uploadAction.jsp; Line: 99] int j = 1; //[ /uploadAction.jsp; Line: 100] while ((mark >= 0) && (j <= 6)) { //[ /uploadAction.jsp; Line: 101] mark--; //[ /uploadAction.jsp; Line: 102] raf.seek(mark); //[ /uploadAction.jsp; Line: 103] n = raf.readByte(); //[ /uploadAction.jsp; Line: 104] if (n == '\n') { //[ /uploadAction.jsp; Line: 105] endPosition = raf.getFilePointer(); //[ /uploadAction.jsp; Line: 106] j++; //[ /uploadAction.jsp; Line: 107] } //[ /uploadAction.jsp; Line: 108] } //[ /uploadAction.jsp; Line: 109] //以客户提交的文件的名字新建文件 //[ /uploadAction.jsp; Line: 110] //从临时文件中读取数据存入这个文件 //[ /uploadAction.jsp; Line: 111] File truefile = new File(dir, filename); //[ /uploadAction.jsp; Line: 112] turefileAbsolutePath = truefile.getAbsolutePath(); //[ /uploadAction.jsp; Line: 113] String path = turefileAbsolutePath; //[ /uploadAction.jsp; Line: 114] System.out.println("truefileAbsolutePath: " + turefileAbsolutePath); //[ /uploadAction.jsp; Line: 115] RandomAccessFile raf2 = new RandomAccessFile(truefile, "rw"); //[ /uploadAction.jsp; Line: 116] raf.seek(forthEndPosition); //[ /uploadAction.jsp; Line: 117] long startPoint = raf.getFilePointer(); //[ /uploadAction.jsp; Line: 118] while (startPoint < endPosition - 1) { //[ /uploadAction.jsp; Line: 119] n = raf.readByte(); //[ /uploadAction.jsp; Line: 120] raf2.write(n); //[ /uploadAction.jsp; Line: 121] startPoint = raf.getFilePointer(); //[ /uploadAction.jsp; Line: 122] } //[ /uploadAction.jsp; Line: 123] raf.close(); //[ /uploadAction.jsp; Line: 124] raf2.close(); //[ /uploadAction.jsp; Line: 125] //tempfile.delete();//删除临时文件 //[ /uploadAction.jsp; Line: 126] out.print("<h2>文件上传成功,请填写相关信息!</h2>"); //[ /uploadAction.jsp; Line: 127] //获取文件大小 //[ /uploadAction.jsp; Line: 128] File ff = new File(path); //[ /uploadAction.jsp; Line: 129] FileInputStream stream = new FileInputStream(ff); //[ /uploadAction.jsp; Line: 130] int softwareSizeM = stream.available() / 1024 / 1024; //文件长度(单位M) //[ /uploadAction.jsp; Line: 131] int softwareSizeK = stream.available() / 1024; //文件长度(单位K) //[ /uploadAction.jsp; Line: 132] int softwareSizeB = stream.available(); //文件长度(单位B) //[ /uploadAction.jsp; Line: 133] if (softwareSizeM > 0) { //[ /uploadAction.jsp; Line: 134] size = stream.available(); //[ /uploadAction.jsp; Line: 135] size = size / (1024 * 1024); //[ /uploadAction.jsp; Line: 136] DecimalFormat df = new DecimalFormat("##.00"); //[ /uploadAction.jsp; Line: 137] size = Double.parseDouble(df.format(size)); //[ /uploadAction.jsp; Line: 138] softwareSize = size; //[ /uploadAction.jsp; Line: 139] softwareSizeStr = String.valueOf(softwareSize) + "M"; //[ /uploadAction.jsp; Line: 140] } //[ /uploadAction.jsp; Line: 141] else if (softwareSizeK > 0) { //[ /uploadAction.jsp; Line: 142] size = stream.available(); //[ /uploadAction.jsp; Line: 143] size = size / 1024; //[ /uploadAction.jsp; Line: 144] DecimalFormat df = new DecimalFormat("##.00"); //[ /uploadAction.jsp; Line: 145] size = Double.parseDouble(df.format(size)); //[ /uploadAction.jsp; Line: 146] softwareSize = size; //[ /uploadAction.jsp; Line: 147] softwareSizeStr = String.valueOf(softwareSize) + "KB"; //[ /uploadAction.jsp; Line: 148] } //[ /uploadAction.jsp; Line: 149] else { //[ /uploadAction.jsp; Line: 150] size = stream.available(); //[ /uploadAction.jsp; Line: 151] DecimalFormat df = new DecimalFormat("##.00"); //[ /uploadAction.jsp; Line: 152] size = Double.parseDouble(df.format(size)); //[ /uploadAction.jsp; Line: 153] softwareSize = size; //[ /uploadAction.jsp; Line: 154] softwareSizeStr = String.valueOf(softwareSize) + "B"; //[ /uploadAction.jsp; Line: 155] } //[ /uploadAction.jsp; Line: 156] System.out.println("文件大小:" + softwareSize); //[ /uploadAction.jsp; Line: 157] } //[ /uploadAction.jsp; Line: 158] else { //[ /uploadAction.jsp; Line: 159] tempfile.delete(); //删除临时文件 //[ /uploadAction.jsp; Line: 160] out.print("请确认路径是否正确!"); //[ /uploadAction.jsp; Line: 161] } //[ /uploadAction.jsp; Line: 162] } //[ /uploadAction.jsp; Line: 163] catch (IOException e) { //[ /uploadAction.jsp; Line: 164] out.print("error!"); //[ /uploadAction.jsp; Line: 165] } //[ /uploadAction.jsp; Line: 166] //out.println("文件上传成功,请填写相关信息!"); //[ /uploadAction.jsp; Line: 167] //response.setHeader("refresh", "0;url='uploadMain.jsp'"); //[ /uploadAction.jsp; Line: 168] String dateNow = new SimpleDateFormat("yyyyMMddHHmmss").format(Calendar.getInstance().getTime()); //[ /uploadAction.jsp; Line: 169] System.out.println(dateNow); //[ /uploadAction.jsp; Line: 170] //System.out.println("truefileAbsolutePath: "+turefileAbsolutePath); //[ /uploadAction.jsp; Line: 171] //[ /uploadAction.jsp; Line: 172] //[ /uploadAction.jsp; Line: 172] _writeText(response, out, _wl_block5, _wl_block5Bytes); out.print(String.valueOf(dateNow)); //[ /uploadAction.jsp; Line: 185] _writeText(response, out, _wl_block6, _wl_block6Bytes); out.print(String.valueOf(dateNow)); //[ /uploadAction.jsp; Line: 186] _writeText(response, out, _wl_block7, _wl_block7Bytes); out.print(String.valueOf(softwareSizeStr)); //[ /uploadAction.jsp; Line: 198] _writeText(response, out, _wl_block8, _wl_block8Bytes); out.print(String.valueOf(softwareSizeStr)); //[ /uploadAction.jsp; Line: 199] _writeText(response, out, _wl_block9, _wl_block9Bytes); out.print(String.valueOf(turefileAbsolutePath)); //[ /uploadAction.jsp; Line: 217] _writeText(response, out, _wl_block10, _wl_block10Bytes); out.print(String.valueOf(turefileAbsolutePath)); //[ /uploadAction.jsp; Line: 218] _writeText(response, out, _wl_block11, _wl_block11Bytes); //INCLUDE /foot.jsp //[ /uploadAction.jsp; Line: 240] _writeText(response, out, _wl_block12, _wl_block12Bytes); _writeText(response, out, _wl_block13, _wl_block13Bytes); } catch (Throwable __ee) { while (out != null && out != _originalOut) out = pageContext.popBody(); ((weblogic.servlet.jsp.PageContextImpl)pageContext).handlePageException((Throwable)__ee); }
//before final close brace...
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -