100分求助,怎么在WinFrom中上传图片~~急,在线等,
怎么在WinFrom中上传图片,是在WinFrom中不是WebFrom,最好代码!! --------------------编程问答-------------------- 分数是100分,不是20分,我忘了改分 --------------------编程问答-------------------- http://www.ppsql.com/software/p227/A22727898.shtml --------------------编程问答-------------------- http://www.sqlsky.com/dotNet/070721/539/ --------------------编程问答-------------------- 往哪传?如果是数据库
获取图片路径path
FileStream fs = new FileStream(path,FileMode.Open,FileAccess.Read);
byte [] b=new byte[fs.Length];
fs.Read(b, 0, fs.Length);
往数据库存,直接把字节数组Insert进去就行
如果要建立Image,可以先讲字节数组放入内存流中,再生成Image
MemoryStream ms = new MemoryStream(b);
Image image = Image.FromStream(ms); --------------------编程问答-------------------- 是上传到数据库,然后再从数据库中把图片读出来 --------------------编程问答-------------------- 用 <asp:upfile 组件啊,很简单 --------------------编程问答-------------------- 如果文件太大(特别是远程),还需用分块,否则需要设置超时加长,这样界面就像死了一样,不知道究竞传了多少.如果分块还可以采用进度条. --------------------编程问答-------------------- 我有代码,但不在这台机上。下次有机会再送上去。
思路把图片上传比较简单,用image控件直接可以上传。显示就要把读出来二进制转化成图片 --------------------编程问答-------------------- 请问ycg_893 : 远程下载、上传文件如何分块啊?非常谢谢!!! --------------------编程问答-------------------- http://www.80diy.com/home/20031129/03/2507828.html --------------------编程问答-------------------- winform滴呢 --------------------编程问答-------------------- www.jiujiange.com 我们是面向企业员工福利的在线平台,目前需要对系统进行改版,部分版块程序希望外包给有能力的工程师来完成,希望该工程师对.net,c#精通,对mvc架构熟悉,如能进一步对div css切图有所掌握,合作内容更多,如你感兴趣,请尽快联系我们,13524864423,huazhuren@hotmail.com-- mr lay --------------------编程问答-------------------- 唉,你在网上直接搜数据库保存图片 --------------------编程问答-------------------- 在数据库中添加一个image列 我的只有一列 所以是下边代码
--------------------编程问答-------------------- 学习中。。。 --------------------编程问答--------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
string conStr = "Data Source=.;Initial Catalog=text;Integrated Security=True";
SqlConnection connection;
public Form1()
{
InitializeComponent();
}
//显示
private void button1_Click(object sender, EventArgs e)
{
connection = new SqlConnection(conStr);
//二进制格式化器
BinaryFormatter bf = new BinaryFormatter();
string sql = "select image from image";//自己加条件啊
SqlCommand command = new SqlCommand(sql,connection);
connection.Open();
byte[] arr = (byte[])command.ExecuteScalar();
MemoryStream s = new MemoryStream(arr);
//反序列化
this.pictureBox2.Image = (Image)bf.Deserialize(s);
connection.Close();
}
private void pictureBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
DialogResult result = openFileDialog1.ShowDialog();
if (result==DialogResult.OK)
{
this.pictureBox1.Image = Image.FromFile(openFileDialog1.FileName);
}
}
//保存
private void button2_Click(object sender, EventArgs e)
{
connection = new SqlConnection(conStr);
//二进制格式化器
BinaryFormatter bf = new BinaryFormatter();
//内存流
MemoryStream ms=new MemoryStream();
//把图片格式化成二进制保存在内存流中
bf.Serialize(ms, this.pictureBox1.Image);
//转换成字节数组
byte[] arr = ms.ToArray();
//@image变量
string sql = "insert into image(image) values(@image) ";
SqlCommand command = new SqlCommand(sql,connection);
//给变量赋值
command.Parameters.Add("@image", SqlDbType.Image).Value = arr;
connection.Open();
command.ExecuteNonQuery();
connection.Close();
}
}
}
获取图片路径path
FileStream fs = new FileStream(path,FileMode.Open,FileAccess.Read);
byte [] b=new byte[fs.Length];
fs.Read(b, 0, fs.Length);
往数据库存,直接把字节数组Insert进去就行
如果要建立Image,可以先讲字节数组放入内存流中,再生成Image
MemoryStream ms = new MemoryStream(b);
Image image = Image.FromStream(ms);
这种方法就很好了 --------------------编程问答--------------------
估计楼主是要传到web服务器上
httpRequest? --------------------编程问答-------------------- 两个网址都打不开啊! --------------------编程问答--------------------
Using wc As New Net.WebClient
wc.UploadFile("http://www.baidu.com", "post", "c:\boot.ini")
End Using
就完事了,或用webclient的几个重载方法,比较方便啦.
WebClient,也有异步方式
如果还不爽,用httpwebrequest,再不爽就tcpclient,还不过瘾用socket. --------------------编程问答-------------------- 是呀,就是使用Webclient这个类来处理的。
还有就是使用最基本的http://模式模拟http方式去提交数据。 --------------------编程问答--------------------
这个可以满足你的需求,先将图片存储到数据库,再需要用的时候就取出图片
取出时记得也要用MemoryStream --------------------编程问答--------------------
--------------------编程问答-------------------- 哪里不清楚留言 --------------------编程问答-------------------- 怎么在 winform中选择一个图片,把图片名称和图片路径获取显示在listview中 --------------------编程问答-------------------- 记得有二种方法吧,一种是将图片转换成二进制代码存入数据库中,还有一种是存路径。 --------------------编程问答-------------------- LZ 只发帖 不结贴 --------------------编程问答-------------------- 下次没人给你回答了 --------------------编程问答-------------------- <asp:FileUpload ID="fupFile" runat="server" Width="190px" />
//插入
private void button6_Click(object sender, EventArgs e)
{
count = objFinfo.GetScalar(_hID);
lb_imageCount.Text = count.ToString();
FilesData files = new FilesData();
files.Hid = _hID;
files.FName = imageName.Text.ToString();
files.FDate = Convert.ToDateTime(imageDate.Text.ToString());
byte[] imageFile;
imageFile = File.ReadAllBytes(ThumbnailPhotoFilePath);
files.Files = imageFile;
if (count == 0)
{
files.FGroup = 1;
}
else
{
count++;
files.FGroup = count;
}
DataTable dt = objFinfo.GetSelectFiles(files.FName, _hID);
if (dt.Rows.Count == 0)
{
int result = objFinfo.InsertFiles(files);
if (result > 0)
{
MessageBox.Show("图像数据已经成功录入数据库", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
count = objFinfo.GetScalar(_hID);
lb_imageCount.Text = count.ToString();
lb_imageNow.Text = count.ToString();
}
else
MessageBox.Show("图像数据录入失败", "失败", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
MessageBox.Show("该图片已存在,请重新插入!");
}
FilesData files = new FilesData();
//显示图片方法
private void PicShow()
{
IDataReader dr = objFinfo.GetReader(_hID, index);
if (dr.Read())
{
files.Files = dr["files"] as byte[];
files.FName = dr["FName"].ToString();
files.FDate = Convert.ToDateTime(dr["FDate"]);
imageName.Text = files.FName;
imageDate.Text = files.FDate.ToString();
MemoryStream myStream = new MemoryStream();
foreach (byte p in files.Files)
{
myStream.WriteByte(p);
}
Image myImage = Image.FromStream(myStream);
pic_h.Image = myImage;
myStream.Close();
}
}
、、
if (this.fupFile.HasFile)
{
string extension = Path.GetExtension(fupFile.FileName);
if (".gif,.jpg,.pjpeg,.jpeg".Contains(extension.ToLower()))
{
string RecordID = b.Guid;
string fileName = RecordID + extension;
string path = Winstar.Framework.WebUI.AppConfig.SYS_Attachment + "Avatar" + "\\";
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
fupFile.SaveAs(path + fileName);
b.Person_Image = fileName;
}
else
{
Response.Write("<script>alert('只能上传图片格式,请重新选择!');</script>");
return false;
}
}
补充:.NET技术 , C#