asp.net多文件上传并把路劲保存到SQL数据库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net多文件上传并把路劲保存到SQL数据库相关的知识,希望对你有一定的参考价值。
多文件上传 不需要重命名什么的 也不需要格式验证关键的问题是 有多个上传文件是 怎么获取其上传的路劲 或者是 上传控件比如uploadfile为空 能不能通过页面提交
一般是一个按钮 一个upload上传控件组成,外面套个ajax控件,这样就能无刷新了当点击浏览,就能选择文件
.点击按钮(上传)
(1)检查文件后缀名是否正确
(2)给文件重命名,最好用StringBuilde连接字符串 如:
StringBuilder strb = new StringBuilder();
strb.Append(这里添加当前时间的年月日时分秒+4个随机数);
(3)开始上传操作到指定的服务器文件夹(专门用来存上传数据的)
(4)连接数据库,将刚才上传的文件路径存入数据库的某张表内
(5)读写完数据,上传操作就基本完成了,做好把upload内容清空,以便用户2次上传!
好了,基本就这些吧东西,如果直接发你代码就没意思了,其实这些操作都很简单的,不懂的函数查下msdn或者百度,都能找的出来的 参考技术A 1.使用风声无组件上传类 2.0 ,
2.把下载的这个上传类文件命名为UpLoadClass.asp,并放在你的网站文件夹下。
3.在需要进行上传图片的处理程序a.asp里对它进行调用。<!--#include file="UpLoadClass.asp"-->(注意你的路径,是不是在同一个文件夹下)
4.然后在上传页a.asp中添加
<%
dim strFile1
time1=timer()
Set myrequest=new UpLoadClass
myrequest.MaxSize = 5000*1024
myrequest.FileType = "png/bmp/gif/jpg"
myrequest.Savepath = "../存放图片的文件夹/"
myrequest.open
%>
5.
strFile1=myrequest.Form("newPhoto") '这里的newphoto是表单里的文本框名
set rs=server.CreateObject("adodb.recordset")
sql="select * from 表名"
rs.open sql,conn,1,3
rs.addnew
rs("pic")=strFile1 '这里的pic是数据表里的字段名
rs.update
rs.close
conn.close()
set conn=nothing
参考技术B 1.使用风声无组件上传类 2.0 ,
2.把下载的这个上传类文件命名为UpLoadClass.asp,并放在你的网站文件夹下。
3.在需要进行上传图片的处理程序a.asp里对它进行调用。<!--#include file="UpLoadClass.asp"-->(注意你的路径,是不是在同一个文件夹下)
4.然后在上传页a.asp中添加
<%
dim strFile1
time1=timer()
Set myrequest=new UpLoadClass
myrequest.MaxSize = 5000*1024
myrequest.FileType = "png/bmp/gif/jpg"
myrequest.Savepath = "../存放图片的文件夹/"
myrequest.open
%>
5.
strFile1=myrequest.Form("newPhoto") '这里的newphoto是表单里的文本框名
set rs=server.CreateObject("adodb.recordset")
sql="select * from 表名"
rs.open sql,conn,1,3
rs.addnew
rs("pic")=strFile1 '这里的pic是数据表里的字段名
rs.update
rs.close
conn.close()
set conn=nothing
将图像文件上传到服务器 asp.net
【中文标题】将图像文件上传到服务器 asp.net【英文标题】:Uploading image file to server asp.net 【发布时间】:2016-06-06 14:37:37 【问题描述】:我有一个 asp.net 项目,我正在将选定的图像保存到 NewUrunler1 文件,并将图像的路径保存在我的数据库中。在本地,它可以正常工作,但是由于我将项目移动到了我的 Godaddy 主机,因此保存方法会出错。这是我保存图像的代码:
protected void UploadImage()
try
HttpPostedFile yuklenecekDosya = FileUploadImage.PostedFile;
if (yuklenecekDosya != null)
FileInfo dosyaBilgisi = new FileInfo(yuklenecekDosya.FileName);
string yuklemeYeri = Server.MapPath("~/Images/NewUrunler1/" + dosyaBilgisi);
FileUploadImage.SaveAs(Path.Combine(yuklemeYeri));
catch (Exception e)
failDiv.Visible = true;
lblHata.Text = e.ToString();
当我运行它时,我从 try catch 中得到一个错误。这是错误:
System.UnauthorizedAccessException: Access to the path 'G:\PleskVhosts\ada-crm.com\httpdocs\Images\NewUrunler1\deneme.png' is denied. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode) at System.Web.HttpPostedFile.SaveAs(String filename) at CRM.UrunEkle.UploadImage()
我是 asp.net 的新手,很抱歉,如果这是一个简单的问题,但我在网上搜索并无法解决。感谢您的宝贵时间。
【问题讨论】:
该错误表明您无权访问您尝试在服务器上保存文件的文件夹。此文件夹与您的网站位于同一文件夹中吗?如果没有,请尝试将保存路径移到那里,看看是否有帮助。 从错误消息中,您只需要授予完全权限。您可以通过他们的控制面板执行此操作,或要求他们为您提供完全许可 【参考方案1】:我不确定 GoDaddy,但在典型的 IIS 托管环境中,您需要确保您尝试上传到的文件夹已为与网站的 ApplicationPool 关联的用户应用了写入权限。
另外,请先确保路径存在。为此,您可以检查文件夹是否存在,如果不存在则创建它们。
【讨论】:
【参考方案2】:这与 ASP.NET 无关,与基本的 Windows 安全性无关。有人将您的网站设置为在无权写入网站的用户下运行。
从安全的角度来看,这很有意义。现在致电您的主机支持并询问他们 - 如何更改此设置,以便运行网站进程的用户可以读取/写入文件夹;)
【讨论】:
是的,我解决了这个问题,你是绝对正确的。这有点尴尬,因为我什至无法发现实际问题是什么,但我会记住这一点。谢谢:) @TomTom【参考方案3】:https://www.godaddy.com/help/set-directory-permissions-windows-6481 这是一本设置goddady写权限的手册。希望它有帮助。在您的代码将工作的文件夹上为您的应用授予写入权限
【讨论】:
【参考方案4】:您的代码没有问题,Godaddy 主机存在访问问题。
Goto > Virtual Directory > Directory Access Permission
并将Full Control
设置为Application pool group
【讨论】:
以上是关于asp.net多文件上传并把路劲保存到SQL数据库的主要内容,如果未能解决你的问题,请参考以下文章
asp.net怎么将图片上传到sql2005里,然后显示在网页里做成变换的新闻图片
asp.net怎么样把excel文件导入到数据库和导出来(紧急求助+高分)