用net控件编写一文件上传界面 有一个选择文件链接 单机弹出对话框 用户可以选择一个图片文件扩展名png 选择文件后单机上传按钮 文件被传到服务器上 该文件的扩展名不变 文件名改为upload与一个随机整数的连接
时间: 2024-10-22 14:22:27 浏览: 21
在ASP.NET中,你可以使用Web Forms或者Windows Forms的控件来创建一个文件上传界面。首先,你需要添加一个`<asp:FileUpload>`控件来让用户选择文件,这会提供一个"浏览"按钮供用户选取图片。例如:
```html
<asp:TextBox ID="txtFileName" runat="server" TextMode="Hidden"></asp:TextBox>
<asp:Button ID="btnBrowse" runat="server" Text="浏览" OnClientClick="openFileDialog()" />
<asp:FileUpload ID="fuImage" runat="server" />
```
然后在后台,你可以通过`fuImage.PostedFile`属性获取用户上传的文件,并处理文件的上传操作:
```csharp
protected void btnUpload_Click(object sender, EventArgs e)
{
if (fuImage.HasFile)
{
string fileName = fuImage.FileName;
// 检查是否为png文件
if (fileName.EndsWith(".png"))
{
string newName = "upload_" + Guid.NewGuid().ToString() + ".png"; // 新文件名
// 迁移文件到服务器上的指定目录并更新文件名
string uploadPath = Server.MapPath("~/uploads/"); // 假设uploads是一个存储文件的目录
fuImage.SaveAs(Path.Combine(uploadPath, newName));
txtFileName.Text = newName; // 更新隐藏字段的值
}
else
{
// 提示用户只能上传.png文件
}
}
}
```
最后,在JavaScript部分,`openFileDialog()`函数可以这样实现,以便在点击"浏览"按钮时弹出文件选择对话框:
```javascript
function openFileDialog() {
var fileDialog = window.showModalDialog("filedialog.aspx", "", "dialogWidth:400px; dialogHeight:300px");
fileDialog.close(); // 关闭对话框后,返回服务器端处理
}
```
在这个例子中,`filedialog.aspx`是一个包含`<input type="file">`元素的小页面,用于弹出文件选择窗口。
阅读全文