web上传下载

需要commons-fileupload.jar 和commons-io.jar

上传:1、接收页面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <body> <form name="Webform" action="upload.jsp" method="post" enctype="multipart/form-data"> 上传文件:<input type="file" name="myfile" ><input type="submit" name="Submit" value="上传文件" /> </form> </body></html>
2、处理页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.text.*"%>

<%@ page import="org.apache.commons.fileupload.FileItem"%>
<%@ page import="org.apache.commons.fileupload.FileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.FileUpload"%>

<%@ page import="org.apache.commons.fileupload.DefaultFileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.DiskFileUpload"%>



<%@ page import="org.apache.commons.fileupload.FileUploadBase"%>
<%@ page import="org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'upload.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

  </head>
  
  <body>
    <%
     // 检查输入请求是否为multipart的表单数据。 
     boolean isMultipart = DiskFileUpload.isMultipartContent(request);
     if (!isMultipart) {
      out.print("表单数据格式不是multipart/form-data,或者非法提交");
      return;
     }

     DefaultFileItemFactory factory = new DefaultFileItemFactory();// Create a factory for disk-based file items
     factory.setSizeThreshold(102400);// 设置初始化内存,如果上传的文件超过该大小,将不保存到内存,而且硬盘中(单位:byte)
     File fileTemp = new File("c://temp");// 建立临时目录
     fileTemp.mkdir();
    %>
<%--
  如果上传的文件超过设置内存的大小,将文件保存至该目录,
待文件上传完毕后,自动删除上传的临时文件;
如果多次上传同一个文件,该文件会保存到服务器的临时目录,而不删除
--%>
<%
factory.setRepository(fileTemp);

DiskFileUpload upload = new DiskFileUpload(factory);// 创建文件上传对象
upload.setSizeMax(1024000);// 设置客户端最大上传,-1为无限大(单位:byte)
//upload.setSizeMax(1024000);
//FileUploadBase.SizeLimitExceededException 

List items = null;
try {
  items = upload.parseRequest(request);// 分析request,并将保存结果至List里 
  System.out.println(items);
} catch (SizeLimitExceededException e) {
  out.print("上传的文件超过系统限制(1MB)");
  return;
}

Iterator itr = items.iterator();

while (itr.hasNext()) {// 循环处理表单元素
  FileItem item = (FileItem) itr.next();
  System.out.println("item is: " + item);
  if (item.isFormField()) {// 普通的表单
   if ("name".equals(item.getFieldName())) {
    String name = item.getFieldName();
    System.out.println(name);
    String value = item.getString("utf-8");
    System.out.println(name + ":=" + value);
   }
  } else {// 上传文件
   if (item.getSize() != 0) {
    String filename = item.getName();// 获取文件的客户端上传路径 

  //  System.out.println("最初的filename=" + filename);
    int i = filename.lastIndexOf("\\");
    
	
    filename = filename.substring(i + 1);// 获取文件名
 //   System.out.println("文件名1=:" + filename);
   
      //注意:要支持中文,请用下面这两句,OK,不过如果中文是奇数,好像会出错.
    // System.out.println("文件名:"+new String(filename.getBytes(),"utf-8"));
     filename = new String(filename.getBytes(),"utf-8");
    
      // System.out.println("Realpath is:"+ getServletContext().getRealPath("/"));
    //注意:创建File savedFile时,要在getRealPath("/")的目录下创建一个temp的目录,因为它传了getRealPath("/")+"temp"字符串了.
  ///  File savedFile = new File(getServletContext().getRealPath("/")+ "temp_files");
   // savedFile.mkdirs();

 //File savedFile = new File("D://test//upload3"); 
 	File savedFile = new File("c://QC/upload"); 
	savedFile.mkdirs();

    savedFile = new File(savedFile, filename);

    System.out.println(item);
    item.write(savedFile);
//    out.println("upload success!!!");
out.println("上传成功");
    System.out.println("upload success!!!");
   }
  }
}
%>



  </body>
</html>



下载:

1、接收页面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"
   contentType="text/html; charset=utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> 

   <body> 
 <form name="form" action="download.jsp?filename=<%=request.getParameter("filename") %>>" method="post"
         enctype="multipart/form-data">  
         <%=request.getParameter("filename")  %> 
        <input type="submit" name="Submit" value="下载" />
      </form>
   </body>
</html>


2、处理页面

 

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.text.*"%>

<%@ page import="org.apache.commons.fileupload.FileItem"%>
<%@ page import="org.apache.commons.fileupload.FileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.FileUpload"%>

<%@ page import="org.apache.commons.fileupload.DefaultFileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.DiskFileUpload"%>



<%@ page import="org.apache.commons.fileupload.FileUploadBase"%>
<%@ page import="org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'upload.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

  </head>
  
  <body>
 
<%
//下载
	response.reset();  
	String tempPath="C://QC//upload";
	out.print(request.getParameter("filename"));
	String fileName=(request.getParameter("filename"));
	//String fileName="1.sql";
        File file = new File(tempPath, fileName);  
        if (file.exists()) {  
            response.setContentType("utf-8");  
            response.addHeader("Content-Disposition", "attachment; filename=\""  
                    + file.getName() + "\"");//注释1   
            int fileLength = (int) file.length();  
            response.setContentLength(fileLength);  
            if (fileLength != 0) {  
                InputStream in = new FileInputStream(file);  
                byte[] buffer = new byte[4096];  
                ServletOutputStream servletOS = response.getOutputStream();  
                int readLength = -1;  
  
                while ((readLength = in.read(buffer)) != -1) {  
                    servletOS.write(buffer, 0, readLength);  
                }  
  
                in.close();  
                servletOS.flush();  
                servletOS.close();  
            }  
        }  
	

 %>

  </body>
</html>




 


                
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值