将图像保存到子文件夹中 [英] Saving image into subfolder
本文介绍了将图像保存到子文件夹中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
此代码可以创建目录和子目录。它还可以上传图像。问题是我想将图像上传到子目录,它不能保存到子目录。它只存储在主目录中。主目录是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 = "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;
}
}
推荐答案
你可以查一下:
如何保存子目录中的图像 [ ^ ]
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屋!
查看全文