base64编码的图片解码求教!

zh545450173 2010-06-01 10:07:02
Jquery做了弹出特性 导致服务器控件 FileUpload 无法使用..


我使用Ajax上传的服务器端
String str = Request.Form["Url"].ToString();
byte[] base64 = Convert.FromBase64String(str); //在这里报错 Base-64 字符串中的无效字符。
MemoryStream memStream = new MemoryStream(base64);

怎么把这个String 转换成图片 保存到服务器端呢?

使用Jquery获得了 客户端用户上传的图片 可它是编码成 base64形式的 以下是全部内容↓

data:image/jpeg;base64,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


...全文
739 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kocokolo 2011-01-17
  • 打赏
  • 举报
回复
是不是这样呀,不过这个没涉及到操作数据库,自己再添添吧

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="上传" />
<asp:Button ID="Button2" runat="server" Text="转化" onclick="Button2_Click" />
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>



using System;
using System.IO;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
string base64str = Convert.ToBase64String(this.FileUpload1.FileBytes);
this.Label1.Text = base64str;
}
protected void Button2_Click(object sender, EventArgs e)
{
String data = this.Label1.Text;
byte[] base64 = Convert.FromBase64String(data);
MemoryStream memStream = new MemoryStream(base64);
System.Drawing.Image img = System.Drawing.Image.FromStream(memStream);
img.Save("c:/111.jpg");
}
}

zh545450173 2010-06-01
  • 打赏
  • 举报
回复
谢谢已经解决了 请不要在回复

String str = Request.Form["Url"].ToString();

String data = str.Substring(str.IndexOf("base64,")+7);
byte[] base64 = Convert.FromBase64String(data);
MemoryStream memStream = new MemoryStream(base64);
System.Drawing.Image img = System.Drawing.Image.FromStream(memStream);
img.Save(Server.MapPath("化妆品/aa.jpg"));

成功了。。。
丰云 2010-06-01
  • 打赏
  • 举报
回复
string[] tmpArr = str.Split(',');
byte[] base64 = Convert.FromBase64String(tmpArr[1]);
丰云 2010-06-01
  • 打赏
  • 举报
回复
仔细看之后才发现,你的字符串前面有段非base64编码的文件头!!
zh545450173 2010-06-01
  • 打赏
  • 举报
回复
楼上的你看清楚啊 我用了 可是报错了
丰云 2010-06-01
  • 打赏
  • 举报
回复
Convert.FromBase64String()
永远的小鱼 2010-06-01
  • 打赏
  • 举报
回复
String str = Request.Form["Url"].ToString();

String data = str.Substring(str.IndexOf("base64,")+7);
byte[] base64 = Convert.FromBase64String(data);
MemoryStream memStream = new MemoryStream(base64);
System.Drawing.Image img = System.Drawing.Image.FromStream(memStream);
img.Save(Server.MapPath("化妆品/aa.jpg"));

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧