将图像保存到子文件夹中 [英] Saving image into subfolder

查看:89
本文介绍了将图像保存到子文件夹中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此代码可以创建目录和子目录。它还可以上传图像。问题是我想将图像上传到子目录,它不能保存到子目录。它只存储在主目录中。主目录是Albums目录。这个的概念是,每当我创建一个目录(即一个子目录)时,我上传的图像/照片会自动保存在我创建的目录中..



任何人都可以帮我解决这个问题。



This code can create directory and sub-directory. It can also upload image..The problem is I want to upload the image into sub directory, It cannot save into sub-directory.It stores only on the main directory.The main directory is the Albums directory. The concept of this, is that everytime I create a directory (that is a sub-directory), I upload images/photo that would automatically save in the directory i created..

Anyone help me regarding this matter.

<pre lang="xml"><head runat="server">
    <title>Upload Image</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <br /><br />
        <asp:Button ID="Button1" runat="server" Text="Create New Directory"

            onclick="Button1_Click" />
        <br /><br />
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label> <br /> <br />

        <asp:Label ID="lblFolderName" runat="server" Text="Folder Name"></asp:Label>
        <asp:TextBox ID="txtFolderName" runat="server"></asp:TextBox> <br /><br />


        <asp:Label ID="lblUploadPhoto" runat="server" Text="Upload Photo" style="margin-left:80px"></asp:Label> <br />
        <asp:Image ID="imgPhoto" runat="server" Width="100px" Height="80px" style="margin-left:80px"/> <br />
        <asp:FileUpload ID="fileUpload" runat="server" style="margin-left:80px"/> <br /> <br />

        <asp:Button ID="btnSave" runat="server" Text="Save" onclick="btnSave_Click" style="margin-left:80px" /> <br /> <br />

        
    </div>
    </form>
</body>
</html>










using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.IO; 

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        lblFolderName.Visible = false;
        txtFolderName.Visible = false;
        btnSave.Visible = false;
    }

    private void CreateDirectoryIfNotExists(string NewDirectory)
    {
        try
        {
            // Checking the existance of directory
            if (!Directory.Exists(NewDirectory))
            {
                //If No any such directory then creates the new one
                Directory.CreateDirectory(NewDirectory);
                Label1.Text = &quot;Directory Created&quot;;
            }
            else
            {
                Label1.Text = &quot;Directory Exist&quot;;
            }
        }
        catch (IOException _err)
        {
            Response.Write(_err.Message);
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        lblFolderName.Visible = true;
        txtFolderName.Visible = true;
        btnSave.Visible=true;
        Label1.Visible = false;


    }
    protected void btnSave_Click(object sender, EventArgs e)
    {


        string NewDirectory = Server.MapPath(&quot;~/Albums/&quot; + txtFolderName.Text);
        //New Directory Name in string variable
        CreateDirectoryIfNotExists(NewDirectory);
        //Calling the function to create new directory
        Label1.Visible = true;
    }
}

推荐答案

你可以查一下:

如何保存子目录中的图像 [ ^ ]
You can check it:
How to save Image in sub directory[^]


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Upload Image</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <br /><br />
        <asp:Button ID="Button1" runat="server" Text="Create New Directory"

            onclick="Button1_Click" />
        <br /><br />
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label> <br /> <br />

        <asp:Label ID="lblFolderName" runat="server" Text="Folder Name"></asp:Label>
        <asp:TextBox ID="txtFolderName" runat="server"></asp:TextBox> <br /><br />


        <asp:Label ID="lblUploadPhoto" runat="server" Text="Upload Photo" style="margin-left:80px"></asp:Label> <br />
        <asp:Image ID="imgPhoto" runat="server" Width="100px" Height="80px" style="margin-left:80px"/> <br />
        <asp:FileUpload ID="fileUpload" runat="server" style="margin-left:80px"/> <br /> <br />

        <asp:Button ID="btnSave" runat="server" Text="Save" onclick="btnSave_Click" style="margin-left:80px" /> <br /> <br />

    </div>
    </form>
</body>
</html>













using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.IO; //additional namespace is required for io operations
using System.Data.SqlClient;
using System.Data.SqlTypes;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        lblFolderName.Visible = false;
        txtFolderName.Visible = false;
        btnSave.Visible = false;
    }

    private void CreateDirectoryIfNotExists(string NewDirectory)
    {
        try
        {
            // Checking the existance of directory
            if (!Directory.Exists(NewDirectory))
            {
                //If No any such directory then creates the new one
                Directory.CreateDirectory(NewDirectory);
                Label1.Text = "Directory Created";
            }
            else
            {
                Label1.Text = "Directory Exist";
            }
        }
        catch (IOException _err)
        {
            Response.Write(_err.Message);
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        lblFolderName.Visible = true;
        txtFolderName.Visible = true;
        btnSave.Visible=true;
        Label1.Visible = false;
          
        
    }
    protected void btnSave_Click(object sender, EventArgs e)
    {
           
       
        string NewDirectory = Server.MapPath("~/Albums/" + txtFolderName.Text);
        //New Directory Name in string variable
        CreateDirectoryIfNotExists(NewDirectory);
        //Calling the function to create new directory
        Label1.Visible = true;
        
        FileUpload img = (FileUpload)fileUpload;
        Byte[] imgByte = null;
        if (img.HasFile && img.PostedFile != null)
        {
            //To create a PostedFile
            HttpPostedFile File = fileUpload.PostedFile;
            //Create byte Array with file len
            imgByte = new Byte[File.ContentLength];
            //force the control to load data in array
            File.InputStream.Read(imgByte, 0, File.ContentLength);
        

            // Insert the profile records into db
            string conn = ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString;
            //string conn = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Coldwind.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
            SqlConnection connection = new SqlConnection(conn);
            // SqlDataReader dr = new SqlDataReader();
            string fname = fileUpload.FileName.ToString();
            string FolderName = txtFolderName.Text.Replace("'", "''");
           
            

            connection.Open();
            string sql = "INSERT INTO [ImageTable]([FolderName],[PhotoFileName]) Values('" + FolderName + "','" + fname.ToString() + "' )";
            SqlCommand cmd = new SqlCommand(sql, connection);
            cmd.CommandType = CommandType.Text;

            cmd.ExecuteNonQuery();
            connection.Close();
            imgPhoto.Visible = true;
            StartUpLoad();
             
        }
        else
        {
            Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Alert", "alert('Please select a photo before creating a profile')", true);

        }
    }


    private void StartUpLoad()
    {
        //get the file name of the posted image
        string imgName = fileUpload.FileName;
        //sets the image path
        string subfolder = txtFolderName.Text;
        string imgPath = "~/Albums/" + subfolder + imgName;
        //get the size in bytes that
        int imgSize = fileUpload.PostedFile.ContentLength;

       

        //validates the posted file before saving
        if (fileUpload.PostedFile != null && fileUpload.PostedFile.FileName != "")
        {
            // 10240 KB means 10MB, You can change the value based on your requirement
            if (fileUpload.PostedFile.ContentLength > 10240000)
            {
                Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Alert", "alert('File is too big.')", true);
            }
            else
            {
                //then save it to the Folder
                fileUpload.SaveAs(Server.MapPath(imgPath));
                imgPhoto.ImageUrl = "~/" + imgPath;
                Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Alert", "alert('Profile Photo has been uploaded!')", true);
            }

        }
    }
}


这篇关于将图像保存到子文件夹中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆