回 帖 发 新 帖 刷新版面

主题:如何在弹出对话框中保存文件,在webform中

--------------------------------------------------------------------------------
如何在弹出对话框中保存文件,在webform中
使用savefiledialog无法完成,那么如何完成同类操作呢?
谢谢了![em10][em18]

回复列表 (共11个回复)

沙发

在C#中看到打开和保存文件对话框可以使用openfiledialog 和 savefiledialog控件完成,在webform中发现不能使用openfiledialog 命令,而是使用HtmlInputFile命令完成,那么现在我要保存图像,将已经保存的图像引用后保存为其他格式的图像,需要弹出对话框选择类型和路径及文件名,使用savefiledialog可以完成,但是在webform中却不行,那么在webform中应该使用什么命令来完成此功能呢?

板凳

不能回?

3 楼

这个是用filefield控件实现的,查下这个控件就好了啊,这个叫上传和下载吧,是在HTML里面,不是在WEB窗体里面

4 楼

只查到htmlinputfile命令,在html中输入<input type="file" run="server">即可了,这是上传的步骤,但是不知道如何在html中进行保存的步骤,当然不仅仅是在html中,在.cs中也可以了!
大侠能够详细些吗?初学者!笨笨地说!

5 楼

代码文件:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;

namespace tst
{
    /// <summary>
    /// UpDownTest 的摘要说明。
    /// </summary>
    public class UpDownTest : System.Web.UI.Page
    {
        protected System.Web.UI.HtmlControls.HtmlInputFile filetst;
        protected System.Web.UI.WebControls.Button Button1;
    
        private void Page_Load(object sender, System.EventArgs e)
        {
            // 在此处放置用户代码以初始化页面
        }

        #region Web 窗体设计器生成的代码
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
            //
            InitializeComponent();
            base.OnInit(e);
        }
        
        /// <summary>
        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
        /// 此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {    
            this.Button1.Click += new System.EventHandler(this.Button1_Click);
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion

        private void Button1_Click(object sender, System.EventArgs e)
        {
            string filePath = Server.MapPath("").ToString()+"\\";//获取你的项目在硬盘上的目录
            this.filetst.PostedFile.SaveAs(filePath+"t33434s.txt");//保存文件,filePath文件的路径,"t33434s.txt"文件名
            //结果:文件会保存在你的项目的根目录下.
        }
    }
}
页面文件:
<%@ Page language="c#" Codebehind="UpDownTest.aspx.cs" AutoEventWireup="false" Inherits="tst.UpDownTest" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    <HEAD>
        <title>UpDownTest</title>
        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
        <meta name="CODE_LANGUAGE" Content="C#">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server">
            <INPUT style="Z-INDEX: 101; LEFT: 256px; POSITION: absolute; TOP: 96px" type="file" runat="server"
                id="filetst">
            <asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 504px; POSITION: absolute; TOP: 96px" runat="server"
                Text="Button"></asp:Button>
        </form>
    </body>
</HTML>

6 楼

<INPUT style="Z-INDEX: 101; LEFT: 256px; POSITION: absolute; TOP: 96px" type="file" runat="server" id="filetst">
注意添加: runat="server" id="filetst" 这样会在代码文件里面生成:
protected System.Web.UI.HtmlControls.HtmlInputFile filetst;
要不然 不会生成的.
如果没自动生成,自己加上去也一样的.

7 楼

http://www.programfan.com/club/showbbs.asp?id=138605

8 楼

我知道上传时的这些步骤,也会编这方面的程序,您误解了我的问题,我的意思是:
如何点击一个按钮,弹出对话框,选择相应的目录,然后输入自己定义的文件名,注意文件事先并不存在,然后按照选定的目录和文件名进行保存,当然保存的命令也会,只是不知道如何弹出对话框进行选择目录和指定新文件。

9 楼

当使用上面的htmlinputfile时,如果文件名在指定目录下并不存在,那么根本就不能选择文件,但是当保存文件时,当然要选择并不存在的文件名了,所以不知道使用哪个命令了!

10 楼

需要弹出对话框选择类型和路径及文件名,使用savefiledialog可以完成,但是在webform中却不行,那么在webform中应该使用什么命令来完成此功能呢?

我来回复

您尚未登录,请登录后再回复。点此登录或注册