通过HtppWebRequest发送图片到服务器并保存
之前写的楼主没有测试,后来发现用起来有点小问题 就修改了一下,现在已经亲测可用 完全没有问题了 下面就开始贴代码了
首先将图片装换成功byte 数组
这个path是图片的路径 例如d:12.png;
public byte[] SaveImage(string path)
{
FileStream fs=new FileStream(path,FileMode.Open,FileAccess.Read);
BinaryReader br=new BinaryReader(fs);
byte[] imgBytes = br.ReadBytes((int) fs.Length);
return imgBytes;
}
然后上传图片流
这里要注意点 写入请求流的strean 用完要关闭
/// <summary>
/// 上传图片流
/// </summary>
/// <param name="data"></param>
private bool ImageRequest(byte[] data)
{
const string host = "http://www.baidu.com";
const string path = "/ImageManagerApi/GetImageByte";
string url = host + path;
HttpWebResponse httpResponse = null;
HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(url);
httpRequest.Method = "POST";
httpRequest.Headers.Add("FileSize", data.Length.ToString());
using (Stream stream = httpRequest.GetRequestStream())
{
stream.Write(data, , data.Length);
stream.Close();
}
try
{
httpResponse = (HttpWebResponse)httpRequest.GetResponse();
}
catch (WebException ex)
{ httpResponse = (HttpWebResponse)ex.Response;
}
//响应流
Stream st = httpResponse.GetResponseStream();
StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
string result = reader.ReadToEnd();
if ("ok".Contains(result))
return true;
return false;
}
服务器接收的方法
/// <summary>
/// 获取图片流
/// 保存图片
/// </summary>
public void GetImageByte()
{
try
{
int fileSize = int.Parse(Request.Headers["FileSize"].ToString());
byte[] data = Request.BinaryRead(fileSize);
DebugHelper.Info(BitConverter.ToString(data));
var path = "/Upload/LINGDAO/" + DateTime.Now.Date.ToString("yyyy-MM-dd") + "/";
var serverPath = Server.MapPath("~" + path);
if (!Directory.Exists(serverPath))
{
Directory.CreateDirectory(serverPath);
}
string fileName = Guid.NewGuid().ToString();
//图片存储到流中 MemoryStream ms = new MemoryStream(data);
Image image = Image.FromStream(ms);
image.Save(serverPath + fileName + ".png"); Response.HeaderEncoding = Encoding.UTF8;
Response.Charset = "utf-8";
Response.Write("ok");
}
catch (Exception e)
{
DebugHelper.Info(e.Message);
Response.HeaderEncoding = Encoding.UTF8;
Response.Charset = "utf-8";
Response.Write("error");
}
}
好了 大功告成!
通过HtppWebRequest发送图片到服务器并保存的更多相关文章
- python使用post请求发送图片并接受图片
图像读取编码与反编码: import requests import json import numpy as np import cv2 import base64 # 首先将图片读入 # 由于要发 ...
- [android]-如何在向服务器发送request时附加已保存的cookie数据
[android]-如何在向服务器发送request时附加已保存的cookie数据 应用场景:在开发android基于手机端+服务器端的应用时,登陆->获取用户信息->获取授权用户相关业务 ...
- [Asp.net 开发系列之SignalR篇]专题四:使用SignalR实现发送图片
一.引言 在前一篇博文已经介绍了如何使用SignalR来实现聊天室的功能,在这篇文章中,将实现如何使用SignalR来实现发送图片的功能. 二.实现发送图片的思路 我还是按照之前的方式来讲述这篇文章, ...
- 【小梅哥FPGA进阶教程】串口发送图片数据到SRAM在TFT屏上显示
十五.串口发送图片数据到SRAM在TFT屏上显示 之前分享过rom存储图片数据在TFT屏上显示,该方法只能显示小点的图片,如果想显示TFT屏幕大小的图片上述方法rom内存大小不够.小梅哥给了个方案,利 ...
- 【代码笔记】Java深入学习——实现客户端发送文件到服务器的文件传输
Server.java package com.huaxin.lesson02; import java.io.FileOutputStream; import java.io.InputStream ...
- php获取远程图片并把它保存到本地
/* *功能:php多种方式完美实现下载远程图片保存到本地 *参数:文件url,保存文件名称,使用的下载方式 *当保存文件名称为空时则使用远程文件原来的名称 */ function getImage( ...
- IM聊天教程:发送图片/视频/语音/表情
经常有朋友问起,如何在IM即时通讯中实现发送图片.视频.语音和表情? 为此,小编特意写了一个vue版本的Demo,实现了图片视频文件和表情的的发送,参考这个Demo源代码,相信你就可以轻松的用Unia ...
- 非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法
非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法 环境:非域环境 因为是自动故障转移,需要加入见证,事务安全模式是,强安全FULL模式 做到最后一 ...
- Unity3D图片的下载及保存
Unity3D图片的下载及保存 分类: Unity3D 2013-06-24 15:03 3609人阅读 评论(2) 收藏 举报 Unity3D图片URL 代码如下: [csharp] view pl ...
随机推荐
- 用queue函数写广搜
以走迷宫需要的最少步数的代码为例 #include<stdio.h>#include<string.h>#include<queue> using namespac ...
- vue中数据双向绑定注意点
最近一个vue和element的项目中遇到了一个问题: 动态生成的对象进行双向绑定是失败 直接贴代码: <el-form :model="addClass" :rules=& ...
- C# 微信 企业号通知消息
每当有个Create 事件,要通知相关的人员. 1.扫码登录企业微信,到企业应用. 2.获取微信配置信息. Secret和AgentId. 3.管理通讯录,配置接收消息的人群.可以按照部门,标签.获取 ...
- linux上搭建zookeeper
1.zookeeper介绍 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提 ...
- Android view的测量及绘制
讲真,自我感觉,我的水平真的是渣的一匹,好多东西都只停留在知道和会用的阶段,也想去研究原理和底层的实现,可是一看到代码就懵逼了,然后就看不下去了, 说自己不着急都是骗人的,我自己都不信,前两天买了本& ...
- session或memcache过期之后跳转到登陆页面并跳出iframe框架
<!--在你想控制跳转的页面,比如login.html中的<head>与</head>之间加入以下代码:--> <script> if (window ...
- [leetcode-625-Minimum Factorization]
Given a positive integer a, find the smallest positive integer b whose multiplication of each digit ...
- [leetcode-504-Base 7]
Given an integer, return its base 7 string representation. Example 1: Input: 100 Output: "202&q ...
- 【Android Developers Training】 32. 向其它应用发送简单数据
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- PyCharm 教程
转自:http://blog.csdn.NET/u013088062/article/details/50388329 作者:山在岭就在 之间花了一周多的时间把Pycharm官方帮助文档翻译了一遍,一 ...