javascrip能实现上传图片并把图片保存下来以供读取吗?急啊!

解决方案 »

  1.   

    javascript这么强大,难道就真的一点办法没有了?
      

  2.   

    好像可以通过JavaScript来操作Adodb,通过Stream来操作。
      

  3.   

    上传文件的时候用个隐藏控件  比如说hidden来保存这张图片的路径
    用的时候用js读取出来显示!~
    试试
      

  4.   


    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.Drawing.Imaging;namespace zhua2
    {
    /// <summary>
    /// Form1 的摘要说明。
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
    private System.Windows.Forms.Button button1;
    private System.Windows.Forms.SaveFileDialog saveFileDialog1;
    /// <summary>
    /// 必需的设计器变量。
    /// </summary>
    private System.ComponentModel.Container components = null; public Form1()
    {
    //
    // Windows 窗体设计器支持所必需的
    //
    InitializeComponent(); //
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
    //
    } /// <summary>
    /// 清理所有正在使用的资源。
    /// </summary>
    protected override void Dispose( bool disposing )
    {
    if( disposing )
    {
    if (components != null) 
    {
    components.Dispose();
    }
    }
    base.Dispose( disposing );
    } #region Windows 窗体设计器生成的代码
    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    this.button1 = new System.Windows.Forms.Button();
    this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
    this.SuspendLayout();
    // 
    // button1
    // 
    this.button1.Location = new System.Drawing.Point(80, 32);
    this.button1.Name = "button1";
    this.button1.Size = new System.Drawing.Size(112, 24);
    this.button1.TabIndex = 1;
    this.button1.Text = "开始抓图";
    this.button1.Click += new System.EventHandler(this.button1_Click);
    // 
    // saveFileDialog1
    // 
    this.saveFileDialog1.FileName = "doc1";
    this.saveFileDialog1.Filter = "jpg Files(*.jpg)|*.jpg|jpeg Files(*.*)|*.jpeg|bmp Files(*.bmp)|*.bmp";
    // 
    // Form1
    // 
    this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
    this.ClientSize = new System.Drawing.Size(292, 93);
    this.Controls.Add(this.button1);
    this.Name = "Form1";
    this.Text = "抓图软件";
    this.ResumeLayout(false); }
    #endregion /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main() 
    {
    Application.Run(new Form1());
    } //调用动态链接库gdi32.dll
    [ System.Runtime.InteropServices.DllImportAttribute ( "gdi32.dll" ) ]
    private static extern bool BitBlt (
    IntPtr hdcDest , //目标设备的句柄
    int nXDest , // 目标对象的左上角的X坐标
    int nYDest , // 目标对象的左上角的X坐标
    int nWidth , // 目标对象的矩形的宽度
    int nHeight , // 目标对象的矩形的长度
    IntPtr hdcSrc , // 源设备的句柄
    int nXSrc , // 源对象的左上角的X坐标
    int nYSrc , // 源对象的左上角的Y坐标
    System.Int32 dwRop // 光栅的操作值
    ) ; //调用动态链接库gdi32.dll
    [ System.Runtime.InteropServices.DllImportAttribute ( "gdi32.dll" ) ]
    private static extern IntPtr CreateDC (
    string lpszDriver , // 驱动名称
    string lpszDevice , // 设备名称
    string lpszOutput , // 无用,可以设定位"NULL"
    IntPtr lpInitData // 任意的打印机数据
    ) ;
    private void button1_Click(object sender, System.EventArgs e)
    {
    this.Hide();
    IntPtr dc1 = CreateDC ( "DISPLAY" , null , null , ( IntPtr ) null ) ;
    //创建显示器的DC
    Graphics g1 = Graphics.FromHdc ( dc1 ) ;
    //由一个指定设备的句柄创建一个新的Graphics对象
    Bitmap MyImage = new Bitmap ( Screen.PrimaryScreen.Bounds.Width , Screen.PrimaryScreen.Bounds.Height , g1 ) ;
    //根据屏幕大小创建一个与之相同大小的Bitmap对象
    Graphics g2 = Graphics.FromImage ( MyImage ) ;
    //获得屏幕的句柄
    IntPtr dc3 = g1.GetHdc ( ) ;
    //获得位图的句柄
    IntPtr dc2 = g2.GetHdc ( ) ;
    //把当前屏幕捕获到位图对象中
    BitBlt ( dc2 , 0 , 0 , Screen.PrimaryScreen.Bounds.Width , Screen.PrimaryScreen.Bounds.Height , dc3 , 0 , 0 , 13369376 ) ;
    //把当前屏幕拷贝到位图中
    g1.ReleaseHdc ( dc3 ) ;
    //释放屏幕句柄
    g2.ReleaseHdc ( dc2 ) ;
    //释放位图句柄
    if (saveFileDialog1.ShowDialog () == DialogResult.OK )
    {
    MyImage.Save ( saveFileDialog1.FileName, ImageFormat.Bmp ) ;
    MessageBox.Show ( "已经把当前屏幕保存!" ) ;
    this.Show();
    }
    }
    }
    }
      

  5.   


    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.Threading;
    using Microsoft.Win32;
    using System.Collections;namespace 人员考勤查询
    {
        public partial class Form1 : Form
        {
            private string ReceivedString;
            //private string RegPath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\John Finlay\\kj201a";
            private string str;
            private delegate void delegatechange();
            
            private int len=6;
            private DataSet ds;
            private ArrayList list = new ArrayList();
            private ArrayList list1 = new ArrayList();
            private int num = 0;        //***********************************************************************
            private string ip = "192.168.20.30";
            
            //***********************************************************************
            private Business.Business bs = new Business.Business();
          
            public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                this.timer1.Start();
                //***********************************************************************
                //th = new System.Threading.Thread(ping);
                //th.Start();
                //***********************************************************************
                //连接串口
                try
                {
                    ReceivedString = "";                //serialPort1.PortName = Convert.ToString(Registry.GetValue(RegPath, "PCOM", "COM1"));
                    //serialPort1.BaudRate = Convert.ToInt32(Registry.GetValue(RegPath, "PBaudRate", "57600"));                //serialPort1.PortName = "COM3";                //serialPort1.BaudRate = 57600;                ////打开串口
                    //serialPort1.Open(); 
                    string filename;
                    string sLine;//
                    string cnstr;                filename = AppDomain.CurrentDomain.BaseDirectory + "config.txt";
                    System.IO.StreamReader objReader;
                    objReader = new System.IO.StreamReader(filename);
                    sLine = objReader.ReadLine();
                    cnstr = sLine;
                    sLine = objReader.ReadLine();
                    serialPort1.PortName = sLine;
                    sLine = objReader.ReadLine();
                    serialPort1.BaudRate = Convert.ToInt32(sLine);
                    serialPort1.Open();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message );
                }
            }        //***********************************************************************
            void ping()
            {
                do
                {
                    //调用ping类,一直ping服务器IP
                    Ping.Ping pi = new Ping.Ping();
                    pi.Pinging(ip, 255, 65535);
                    //如果不通弹出窗体
                    if (pi.Receive() == false)
                    {
                        this.Invoke(new delegatechange(waitform));
                    }
                    System.Threading.Thread.Sleep(1000);
                } while (true);        }
            private void waitform()
            {       
                Form2 curwaitform=new Form2 ();
                curwaitform.ip = ip;
                curwaitform.ShowDialog();
            }
            //***********************************************************************      
            private void timer1_Tick(object sender, EventArgs e)
            {
                this.toolStripStatusLabel2.Text = "当前时间:" + DateTime.Now.ToString();
            }
        
            private void Form1_FormClosed(object sender, FormClosedEventArgs e)
            {
                //关闭窗口时关闭串口
                this.serialPort1.Close();
            }
        }
    }