我正在尝试创建一个文件夹,然后使用AjaxFileUpload函数将文档上传到同一个文件夹,我需要文件夹路径在表单中包含文本框的值;但是,我似乎无法找到任何好的资源来告诉我如何这样做,所以任何帮助将不胜感激。这是我的代码:
aspx页面(以下是在更新面板中):
<asp:AjaxFileUpload ID="CertificateUpload" ThrobberID="myThrobber" runat="server" MaximumNumberOfFiles="10" Width="600px" OnUploadStart="CreateFolder_Click" OnUploadComplete="File_Upload" />
apsx.cs页面:
protected void CreateFolder_Click(object sender, EventArgs e)
{
string folderName = @"P:\Training Records\Training Detail Records\Individual Records";
string pathString = Path.Combine(folderName, firstnametier1.Text + " " + lastnametier1.Text);
if (!Directory.Exists(pathString))
{
Directory.CreateDirectory(pathString);
}
}
protected void File_Upload(object sender, AjaxFileUploadEventArgs e)
{
string filename = e.FileName;
string FinalFolder = "~/Training Detail Records/Individual Records/";
string strDestPath = Server.MapPath(@FinalFolder);
CertificateUpload.SaveAs(@strDestPath + filename);
}
}
我正在尝试将这两个放在一起,以便在我点击上传按钮时创建文件夹,并且我想在最终文件夹路径中添加一个额外的文本值,如下所示:
string FinalFolder = "~/Training Detail Records/Individual Records/" + Textbox.Text + "/";
但是当我尝试这个时它不起作用。再次,欢迎任何帮助。
由于
答案 0 :(得分:0)
我明白了:
以下是aspx.cs页面的代码:
首先我将以下内容添加到SelectedIndexChanged(对象发送者,EventArgs e)部分:
string fullname = firstnametier1.Text + " " + lastnametier1.Text;
Session["fname"] = fullname;
这有助于在会话中存储两个文本字段的值,因此我可以在ajaxfileupload函数中使用它。
其次我调整了我的另一段代码:
protected void File_Upload(object sender, AjaxFileUploadEventArgs e)
{
string folderName = "P:/Training Records/Training Detail Records/Individual Records/" + Session["fname"].ToString() + "/";
if (!Directory.Exists(folderName))
{
Directory.CreateDirectory(Server.MapPath(folderName));
}
string filename = e.FileName;
string strDestPath = Server.MapPath(@folderName);
CertificateUpload.SaveAs(@strDestPath + filename);
}
现在它有效!我正在创建一个名为“我想要”的文件夹,并将数据添加到该文件夹中。
我不是专业程序员,因此如果您发现此代码存在任何问题或者可以使其更好,请执行此操作。我希望这有助于其他人。