总的问题是怎么用javascript+C#来将网页上的图片保存到本地。
我现在已经获得了图片的url,也会用C#将指定url的图片保存到本地,但我的要求是在下面这段代码里实现,每3秒就将网页中的第一个图片元素保存到本地。 addr就是图片的url怎么样实现保存到本地。
//每3秒平移一段,点鼠标左键结束
var t=setInterval(moves,3000);
var i = 0;
function moves() {
i++;
var x = document.getElementsByTagName("img");
var addr = x[0].src;
//alert(addr);
map.panTo(new BMap.Point(116.31557 + i * 0.029078, 39.93381));
}
map.addEventListener("click", function() {
clearInterval(t);
});
//每3秒平移一段,点鼠标左键结束
我在网上找到一个C#保存图片到本地的代码?使用一个类实现的。关键是怎么将前后联系起来using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Drawing;/*
* Name: 通过URL保存图片到本地
*
* Author:Sungan
*
* Date:2011.7.19
* *
*/namespace SaleMapGoogle
{
[System.Runtime.InteropServices.ComVisibleAttribute(true)]//将该类设置为com可访问
public class LoadImag
{ /// <summary>
/// 从Url保存图片到本地
/// </summary>
/// <param name="FileName"></param>
/// <param name="Url"></param>
/// <returns></returns>
public bool SavePhotoFromUrl(string FileName, string Url)
{
bool value = false;
WebResponse response = null;
Stream stream = null; try
{
WebRequest request = WebRequest.Create(Url);
response = request.GetResponse();
stream = response.GetResponseStream(); if (!response.ContentType.ToLower().StartsWith("text/"))
{
value = SaveBinaryFile(response, FileName);
} }
catch (Exception err)
{
string aa = err.ToString();
}
return value;
} /// <summary>
///
/// </summary>
/// <param name="response"></param>
/// <param name="FileName"></param>
/// <returns></returns>
private bool SaveBinaryFile(WebResponse response, string FileName)
{
bool Value = true;
byte[] buffer = new byte[1024]; try
{
if (!File.Exists(FileName))
{ Stream outStream = System.IO.File.Create(FileName);
Stream inStream = response.GetResponseStream(); int l;
do
{
l = inStream.Read(buffer, 0, buffer.Length);
if (l > 0)
outStream.Write(buffer, 0, l);
}
while (l > 0); outStream.Close();
inStream.Close();
}
}
catch
{
Value = false;
} return Value;
} }
}javascripturlC#网页图片保存
我现在已经获得了图片的url,也会用C#将指定url的图片保存到本地,但我的要求是在下面这段代码里实现,每3秒就将网页中的第一个图片元素保存到本地。 addr就是图片的url怎么样实现保存到本地。
//每3秒平移一段,点鼠标左键结束
var t=setInterval(moves,3000);
var i = 0;
function moves() {
i++;
var x = document.getElementsByTagName("img");
var addr = x[0].src;
//alert(addr);
map.panTo(new BMap.Point(116.31557 + i * 0.029078, 39.93381));
}
map.addEventListener("click", function() {
clearInterval(t);
});
//每3秒平移一段,点鼠标左键结束
我在网上找到一个C#保存图片到本地的代码?使用一个类实现的。关键是怎么将前后联系起来using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Drawing;/*
* Name: 通过URL保存图片到本地
*
* Author:Sungan
*
* Date:2011.7.19
* *
*/namespace SaleMapGoogle
{
[System.Runtime.InteropServices.ComVisibleAttribute(true)]//将该类设置为com可访问
public class LoadImag
{ /// <summary>
/// 从Url保存图片到本地
/// </summary>
/// <param name="FileName"></param>
/// <param name="Url"></param>
/// <returns></returns>
public bool SavePhotoFromUrl(string FileName, string Url)
{
bool value = false;
WebResponse response = null;
Stream stream = null; try
{
WebRequest request = WebRequest.Create(Url);
response = request.GetResponse();
stream = response.GetResponseStream(); if (!response.ContentType.ToLower().StartsWith("text/"))
{
value = SaveBinaryFile(response, FileName);
} }
catch (Exception err)
{
string aa = err.ToString();
}
return value;
} /// <summary>
///
/// </summary>
/// <param name="response"></param>
/// <param name="FileName"></param>
/// <returns></returns>
private bool SaveBinaryFile(WebResponse response, string FileName)
{
bool Value = true;
byte[] buffer = new byte[1024]; try
{
if (!File.Exists(FileName))
{ Stream outStream = System.IO.File.Create(FileName);
Stream inStream = response.GetResponseStream(); int l;
do
{
l = inStream.Read(buffer, 0, buffer.Length);
if (l > 0)
outStream.Write(buffer, 0, l);
}
while (l > 0); outStream.Close();
inStream.Close();
}
}
catch
{
Value = false;
} return Value;
} }
}javascripturlC#网页图片保存
解决方案 »
- 让ie6、ie7、ie8支持css3的圆角、阴影样式
- myeclipse下extjs怎么实现智能提示,extjs代码如何调试
- 请问如何用JS改变<p>里面内容?
- 计算第几周的代码在IE9下面出错,请帮助
- JavaScript无法在浏览器上正常显示(由于毕业设计,非常急)
- value.search(/[^a-zA-z0-9_]/)>=0 这句话什么意思?
- escape(document.referrer)的问题
- 动态加载easyui语言包的问题
- 页面关闭的问题!
- 验证信息不起作用,代码有错吗大神们帮我看看~~
- jquery实现图片自动无缝滚动。自己写的,不用插件。
- 网页引入Extjs4.0.7框架后,用firefox浏览器加载时,好多警告信息,加载很慢
读了你的描述才知道,你所谓的本地指的是服务器...
让你自己写ajax上传估计是写不出来,原理讲了估计你也无法明白,你这个先去找一个ajax文件上传组件,jquery.uploadify做的很好,但flash的,涉及sessionid问题你用起来难度估计不小;推荐jquery.ajaxupload,简单实用,然后服务端写一个文件保存的接口,你可以专门建一个aspx页面做这个接口,代码和你上面的差不多,只不过加上Response.write('...');Response.end();把是否保存成功结果返回到客户端
看错了,你的图片不是从客户端硬盘上传,
如果是src跨域加载的远程图片,那是没办法从客户端上传到服务器的.你可以尝试在服务端做http请求获取图片
if (SaleMapGoogle.LoadImag.SavePhotoFromUrl(path, url))
{
Response.ContentType = "image/jpeg";
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + fn + "\"");
Response.TransmitFile(path);
Response.End();
}
else Response.Write("文件件下载失败!");var t=setInterval(moves,3000);
var i = 0;
function moves() {
i++;
var x = document.getElementsByTagName("img");
var addr = x[0].src;
window.open("save.aspx?url="+encodeURIComponent(addr));////////
//alert(addr);
map.panTo(new BMap.Point(116.31557 + i * 0.029078, 39.93381));
}
map.addEventListener("click", function() {
clearInterval(t);
});
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
}
}
写在什么位置上?
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ string url = Request.QueryString["url"], fn = DateTime.Now.ToString("yyyyMMddHHmmssfff")+".jpg",path=Server.MapPath(fn);
if (SaleMapGoogle.LoadImag.SavePhotoFromUrl(path, url))
{
Response.ContentType = "image/jpeg";
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + fn + "\"");
Response.TransmitFile(path);
}
else Response.Write("文件件下载失败!");
} Response.End();//停止输出aspx页面中的html
}
}
在C#中访问JavaScript的已有变量
方法一:
1、前台使用静态文本控件隐藏域,将js变量值写入其中;
2、后台用request["id"]来获取值;
第1句“前台使用静态文本控件隐藏域,将js变量值写入其中;”是什么意思啊?
呵呵,写错了,要创建实例,看成静态方法了。。if (new SaleMapGoogle.LoadImag().SavePhotoFromUrl(path, url))