问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ASP.NET+C#,FILEUPLOAD控件,如何上传图片到服务器,并保存图片路径到数据库?

发布网友 发布时间:2022-04-10 03:56

我来回答

3个回答

懂视网 时间:2022-04-10 08:18

+"‘,"+r.getIsused()+","+r.getQid()+",‘"
+r.getUphone()+"‘)"; return ju.Write(sql); } }

  6、在步骤一 大神写的servlet里加几句

      

package servlet;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import bean.Resourse;
import dao.ResourseDao;
import daoImpl.ResourseDaoImpl;
@WebServlet("/UploadServlet")
public class UploadServlet extends HttpServlet {

 /**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
		String value="";
		ResourseDao rd=new ResourseDaoImpl();// new!
		response.setCharacterEncoding("utf-8");
  //得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
  String savePath = this.getServletContext().getRealPath("/teach/video");
  File file = new File(savePath);
  //判断上传文件的保存目录是否存在
  if (!file.exists() && !file.isDirectory()) {
   System.out.println(savePath+"目录不存在,需要创建");
   //创建目录
   file.mkdir();
  }
  //消息提示
  String message = "";
  try{
   //使用Apache文件上传组件处理文件上传步骤:
   //1、创建一个DiskFileItemFactory工厂
   DiskFileItemFactory factory = new DiskFileItemFactory();
   //2、创建一个文件上传解析器
   ServletFileUpload upload = new ServletFileUpload(factory);
   //解决上传文件名的中文乱码
   upload.setHeaderEncoding("UTF-8"); 
   //3、判断提交上来的数据是否是上传表单的数据
   if(!ServletFileUpload.isMultipartContent(request)){
   //按照传统方式获取数据
   return;
   }
   //4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项
   List<FileItem> list = upload.parseRequest(request);
   for(FileItem item : list){
   //如果fileitem中封装的是普通输入项的数据
   if(item.isFormField()){
    String name = item.getFieldName();
    //解决普通输入项的数据的中文乱码问题
    value = item.getString("UTF-8");
    //value = new String(value.getBytes("iso8859-1"),"UTF-8");
    System.out.println(name + "=" + value);
   }else{//如果fileitem中封装的是上传文件
   	//得到上传的文件名称,
   	String filenamee=item.getName();
    String filename = "http://localhost:8080/soga/teach/video/"+item.getName();//new!
    //添加到数据库!!!
    
    filename=checkString(filename);//new!
    System.out.println(filename);//new!
    Resourse r=new Resourse(value,filename,0,"188*******");//这里是你自己写的实体类里的构造函数
    System.out.println(rd.insert(r));//new!
    if(filenamee==null || filenamee.trim().equals("")){
    continue;
    }
    //注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如: c:a1.txt,而有些只是单纯的文件名,如:1.txt
    //处理获取到的上传文件的文件名的路径部分,只保留文件名部分
    filenamee = filenamee.substring(filenamee.lastIndexOf("\")+1);
    //获取item中的上传文件的输入流
    InputStream in = item.getInputStream();
    //创建一个文件输出流
    FileOutputStream out = new FileOutputStream(savePath + "\" + filenamee);
    //创建一个缓冲区
    byte buffer[] = new byte[1024];
    //判断输入流中的数据是否已经读完的标识
    int len = 0;
    //循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
    while((len=in.read(buffer))>0){
    //使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\" + filename)当中
    out.write(buffer, 0, len);
    }
    //关闭输入流
    in.close();
    //关闭输出流
    out.close();
    //删除处理文件上传时生成的临时文件
    item.delete();
    message = "文件上传成功!";
   }
   }
  }catch (Exception e) {
   message= "文件上传失败!";
   e.printStackTrace();
   
  }
  request.setAttribute("message",message);
  request.getRequestDispatcher("/message.jsp").forward(request, response);
 }

 public void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {

 doGet(request, response);
 }
  public String checkString(String str){ //new!
 String returnStr = ""; 
 if(str.indexOf("‘") != -1){//判断字符串是否含有单引号 
  returnStr = str.replace("‘", "‘‘"); 
  str = returnStr; 
 } 
 return str; 
 }  
}

  

红色的是我新添加的。??怎么没有,不过我在新加的代码后注释了://new!

 技术分享

 

三、从数据库读出url,内容显示在网页上。

     这里就和json有关了。完整步骤见:jsonp跨域访问servlet接口获取json数组,并且渲染数据,前后端完整

 

h5上传视频到服务端,存到指定位置,url保存到数据库,最后以特定格式显示

标签:public   pre   resource   contex   row   mkdir   自己   over   parse   

热心网友 时间:2022-04-10 05:26

我做了个例子给你
前台:
<div>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server"
Text="Button" onclick="Button1_Click" />
<asp:Image ID="Image1" runat="server" />
</div>
后台:
protected void Button1_Click(object sender, EventArgs e)
{
FileUpload1.SaveAs(Server.MapPath("img/"+FileUpload1.FileName));//上传图片
Image1.ImageUrl = "~/img/" + FileUpload1.FileName;//图片路径(将这个数据保存到数据库就可以了。img为项目里一个文件夹的名称)
}

热心网友 时间:2022-04-10 06:44

protected void UpImg_Click(object sender, EventArgs e)//上传图片
{
if (FileUpload1.PostedFile.ContentLength < 500000)//100000为100K
{

string fileFullname = this.FileUpload1.FileName;
string dataName = DateTime.Now.ToString("yyyyMMddhhmmss");
string fileName = fileFullname.Substring(fileFullname.LastIndexOf("\\") + 1);
string type = fileFullname.Substring(fileFullname.LastIndexOf(".") + 1);
if (type == "bmp" || type == "jpg" || type == "gif" || type == "JPG" || type == "BMP" || type == "GIF")
{
this.FileUpload1.SaveAs(Server.MapPath("../upload") + "\\" + dataName + "." + type);
string ProImg = "upload/" + dataName + "." + type;
this.txtProImg.Text = "upload/" + dataName + "." + type; // 呵呵路径就是这个了
}
else
{
Response.Write("<script language='javascript'>alert('支持格式:|jpg|gif|bmp|');</script>");
}
}
else
{
Response.Write("<script language='javascript'>alert('你的图片已经超过500K的大小!');</script>");
}
}

//写个按钮事件吧 图片什么插入到数据库里面,这里数据库保存的是路径,图片在upload文件夹下哦,业务逻辑代码省略了,就是SQL插入语句之类的哈。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
红米手机怎么设置仅在wifi下载 映泰A770L3 6.x详细参数 映泰A770L3 6.x重要参数 问心诗集电子书txt全集下载 《第26局世界大学生运动会诗歌集》txt全集下载 自由体诗的欣赏txt全集下载 徐志摩诗全集txt全集下载 站立的近义词有哪些 站立的近义词是什么 小学语文教师工作评价1000字 吉林电气工程学院什么样 红豆豆腐花有什么功效 豆腐花的功能是什么? 同价位的福特蒙迪欧和本田雅阁,哪个好一点? 进消防需要什么条件? 新款起亚k4t和k5那个好 退役军人如何直接成为消防员? 预售价16.18万起 全新一代起亚K5凯酷能卖过雅阁、凯美瑞吗 预售16.18万起 新一代起亚K5凯酷能卖过雅阁、凯美瑞吗? 掌上好房通遭卸载了怎么办? 搭载1.5T和2.0T发动机,起亚K5凯酷能否挽颓势 听说消防归地方了,那当兵十二年退伍转业去消防好去不?都有什么硬性要求? 利率降了,首套房(二手房)贷款是在利息上浮10%时订的,以后按多少计算? 起亚k5手套箱灯不亮怎么回事 掌上好房通的主要功能 手机上安装的秒表软件有什么 华为掌上好房通查房源登记总没有? 全新起亚K5中文名定了,240马力配8AT!别急选雅阁迈腾 退伍兵到当地消防应聘,需要带什么证件 起亚k5豪华版后面扶手箱有出风口吗? 有没有上网计时的软件,能到时间,比如每天一小时,用完了自动断网的 每天喝红糖豆腐花有什么好处 关于尝试作文的评语 vivox60,后台,怎么关掉 幼儿园科学实验课对孩子的集体评语 我做过的一次小实验 作文 实验报告评语 记一次有趣的活动作文,拍作文选的吧,因为老师要我们去抄作文而且要有... 我是六年级学生,在评价手册上,老师让写让我最满意的一件事,希望您 pp电影为什么下载不了啊 怎样用pptv一边看电影一边下载 在一些网站上看到视频电影想把它下载下来 12岁孩子半夜偷偷玩游戏? 我的孩子晚上经常偷偷打游戏,我想怎么知道他打没? 孩子晚上偷偷玩游戏要不要和老师说? 爱普生635怎么跟电脑连接视频? 孩子最近居然半夜起来偷玩电脑游戏,怎么办 我十一岁儿子半夜起来玩游戏应该怎么办 孩子晚上睡觉偷玩手机游戏怎么办 怎么样才能更快乐? 孩子夜里起来偷偷玩电脑怎么办.