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字段中 (也可以把图片显示出来 , 这看起来更友好) , 然后 提交表单, 这时候就能同时把上传的那个文件名给保存了...
缺点是可以上传文件后不保存信息....造成呢个很多冗余图片
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)