图片如何存入数据库?

图片如何存入数据库?,第1张

1、新建一个数据库,数据库名为Image,表名为image。并为表添加ID,tupian两个列。

2、新建一个项目(Photo),在工具箱中往窗体中拖入一个PictureBox控件,两个Button按钮,一个OpenFileDialog控件。并修改pictureBox1控件的属性BorderStyle为FixedSingle,SizeMode为StretchImage;修改两个button控件属性的Text值依次为”打开一张图片”“插入数据库”。

3、首先打开“数据“选择“添加新数据源”,然后(数据库)下一步,(数据集)下一步,选择”新建连接“,依次选择服务器名,服务器验证方式,选择”选择或输入一个数据库名。

4、选择”选择或输入一个数据库名,添加刚刚新建的数据库,然后点击“测试连接”,看看数据库连接是否成功。成功后点“确定”回到“数据源配置向导”页面,将“连接字符串复制下来。

5、添加两条using命名空间 using System.IO  using System.Data.SqlClient作用为读取二进制数据流,用于数据库的连接。

6、编辑Button按钮“打开一张图片”的Click事件。

7、编写Button按钮“插入数据库:的Click事件。

图片保存到数据库不是最佳的选择.

你可以搜索一下Uploadify 插件. 这个插件非常好用

一般将图片存为图片文件.

大致代码如下:

$("#btn_upload_attachment").uploadify({

height: 25,

swf: '../Scripts/plugin/uplodify/uploadify.swf',

uploader: '/Home/Upload',

queueSizeLimit: 1,

formData: { ID: newId },

buttonText: '选择文件',

width: 80,

onUploadSuccess: function (file, data, response) {

eval("data=" + data)

AddToAttachmentList(data.Data)

}

})

后台代码处理:

[AcceptVerbs(HttpVerbs.Post)]

public JsonResult Upload(HttpPostedFileBase fileData, Guid? ID)

{

if (fileData != null)

{

try

{

// 文件上传后的保存路径

var filePath = Path.Combine(ConfigurationManager.AppSettings["BusinessFiles"], Ticket.OrgId.ToString())

if (!Directory.Exists(filePath))

{

Directory.CreateDirectory(filePath)

}

var fileName = Path.GetFileName(fileData.FileName)// 原始文件名称

var fileExtension = Path.GetExtension(fileName)// 文件扩展名

var fileID = Guid.NewGuid()

var saveName = fileID.ToString() + fileExtension// 保存文件名称

fileData.SaveAs(filePath + "/" + saveName)

// 作为临时附件存入附件表

var attachments = new Attachments()

attachments.ID = fileID

attachments.OrgID = Ticket.OrgId

attachments.BusinessType = (byte)BusinessType.TransferContract

attachments.Status = (byte)AttachmentStatus.Temp

if (ID.HasValue)

{

attachments.BusinessID = ID.Value

}

attachments.Extension = fileExtension

attachments.Name = fileName

attachments.Size = fileData.ContentLength

attachments.UploadTime = GetNow()

attachments.UploadBy = Ticket.EmployeeName

attachments.UploadByID = Ticket.UserId

AttachmentsBLL.SaveAttachment(attachments)

return Json(new { Success = true, FileName = fileName, SaveName = saveName, FileID = fileID, Data = attachments })

}

catch (Exception ex)

{

return Json(new { Success = false, Message = ex.Message }, JsonRequestBehavior.AllowGet)

}

}

else

{

return Json(new { Success = false, Message = "请选择要上传的文件!" }, JsonRequestBehavior.AllowGet)

}

}

uploaderfy只是负责上传吧...

如果你想用这种 , 最好还是分开 , 现在一般的也都是分开 *** 作....

填写信息 , 到上传文件这里 , 选择文件 , 同时上传 , 上传完毕后 , 通过回调 , 吧上传成功返回的文件名 写到一个hidden字段中 (也可以把图片显示出来 , 这看起来更友好) , 然后 提交表单, 这时候就能同时把上传的那个文件名给保存了...

缺点是可以上传文件后不保存信息....造成呢个很多冗余图片


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9754931.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存