首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

用javascript保存网页图片到当地的方法

2013-04-05 
用javascript保存网页图片到本地的方法?总的问题是怎么用javascript+C#来将网页上的图片保存到本地。我现在

用javascript保存网页图片到本地的方法?
总的问题是怎么用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;
        }

    }
} javascript url C# 网页图片保存
[解决办法]
在浏览器客户端是无法访问文件系统的。
[解决办法]

引用:
概念首先就有问题,web程序,我们说本地,肯定是指客户端(即浏览器端),若只看你的题目,直接就可会回答你js不可以操作客户端文件.
读了你的描述才知道,你所谓的本地指的是服务器...
让你自己写ajax上传估计是写不出来,原理讲了估计你也无法明白,你这个先去找一个ajax文件上传组件,jquery.uploadify做的很好,但flash的,涉及sessionid问题……


看错了,你的图片不是从客户端硬盘上传,
如果是src跨域加载的远程图片,那是没办法从客户端上传到服务器的.你可以尝试在服务端做http请求获取图片
[解决办法]
js无法保存文件到客户端

window.open打开服务器的一个页面并传递图片地址,这个页面负责下载远程图片保存到服务器,保存好后设置响应头content-disposition为attachment;filename="图片名称",就可以弹出保存保存图片对话框了

save.aspx


        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);
            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);
});

[解决办法]
看看HTML5的本地存储。

热点排行