//上传文件
protected void btnUpload_Click(object sender, EventArgs e)
{
//判断是否选择文件
if (FileUpload1.HasFile)
{
//第一步 上传文件
string filename = FileUpload1.FileName;
DateTime today = System.DateTime.Today;
filename = today.ToShortDateString() + filename; //生成服务器端文件名
string fileExt = System.IO.Path.GetExtension(filename);
string filePath = Server.MapPath("~/MasterPage/BasicInfoManagement/upload/" + filename); if (fileExt == ".xls" || fileExt == ".xlsx" || filename.IndexOf("") < 1)
{
JScript.AlertByControl(btnUpload, "数据导入失败.可能是文件格式或路径不正确!");
}
else
{
FileUpload1.PostedFile.SaveAs(filePath);
}
//第二步 将EXCEL数据导入Gridview }
else
{
JScript.AlertByControl(btnUpload, "请选择上传文件!");
}
}
RT 当没有选择文件时,提示请选择上传文件,但是选择文件后,点击上传,不进入调试,直接刷新为空 ? 获取文件路径后,如何将文件内容转化为datatable ?
解决方案 »
- 如后后台增加表格行?
- 谁用过DXperienceUniversal-9.2.6.exe 出错了
- owc画柱状图如何在每个柱的上方显示数据
- 那位高手能给个好一点的答复?小第不胜感激!顶者有分!
- POST数据的问题,百思不得其解
- 为什么用,Directory.GetCurrentDirectory()返回的结果是:C:/windows/system32
- 在线急等,分不够再加!
- 麻烦各位大哥帮忙看看呢 谢谢哈
- 想要在asp.net中写一个com组件,推荐点上手的资料吧!!up有分哈
- 请教一下,在codebehind里处理事务 和 在存储过程里处理事务 各有什么优点缺点?
- 控件显示的问题,请各位进来看看
- 如何对图片进行标注?
/// 将csv文件中的数据转成dataTabel
/// </summary>
/// <param name="path">csv路径</param>
/// <returns>DataTable</returns>
public DataTable CSVToDS(string path)
{
String line;
String[] split = null;
DataTable table = new DataTable("auto");
DataRow row = null;
StreamReader sr = new StreamReader(path, Encoding.Default); //创建与数据源对应的数据列
line = sr.ReadLine();
split = line.Split(',');
foreach (String colname in split)
{
table.Columns.Add(colname, System.Type.GetType("System.String"));
}
//将数据填入数据表
int j = 0;
while ((line = sr.ReadLine()) != null)
{
j = 0;
row = table.NewRow();
split = line.Split(',');
foreach (String colname in split)
{ if (j > table.Columns.Count-1) continue;
row[j] = colname.Trim().Replace("'","").Replace("\"","");
j++;
}
table.Rows.Add(row);
}
sr.Close();
//显示数据
return table;
}
/// <summary>
/// 将excel文件另存csv文件
/// </summary>
/// <param name="excelFileName">Excel文件路径</param>
/// <param name="csvFileName">csv文件路径</param>
public static void SaveAsExcel(string excelFileName, string csvFileName)
{
//定义一个COM中空类型的对象(作用类似于大家所熟悉的null)
object missing = System.Reflection.Missing.Value; //创建Excel应用程序对象(会帮我们在启动Excel进程)
Excel.Application app = new Excel.ApplicationClass(); Excel.Workbook wb = app.Application.Workbooks.Open(excelFileName, missing, missing, missing, missing, missing, missing, missing,
missing, missing, missing, missing, missing, missing, missing);
//不出现提示,用默认的选择
app.Application.DisplayAlerts = false;
//不运行excel界面
app.Application.Visible = false; Excel.Worksheet sheet = (Excel.Worksheet)wb.ActiveSheet;
try
{
//另存为csv格工,注意Excel.XlFileFormat.xlCSV参数,要另存为别的格式,也是在这里设置 sheet.SaveAs(csvFileName, Excel.XlFileFormat.xlCSV, missing, missing, false, false, false, missing, missing, false);
}
finally
{ wb.Close(false, missing, missing); app.Quit();
}
}
Excel.Application app = new Excel.ApplicationClass(); 这个是文件名还是 要导入什么包?
FileUpload是只读控件
那如何来获取路径呢?
你把断点设在 protected void btnUpload_Click(object sender, EventArgs e)上看看走不走。
2.你使用AJAX了么?有没有注册事件?
3.是不是动态绑定的事件?有委托么?
等等....
我是嵌套的母板页, 包含UpdatePanel,应该就是这个原因吧! 但是不能删除, 要怎么设置才行?
另外,FileUpload有单击事件吗? 事件里没找到,双击会进入到前台代码 .
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode = "Conditional">
<ContentTemplate>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="btnUpload" />
</Triggers>
</asp:UpdatePanel>
感谢大家的帮助!
ScriptManager.GetCurrent(Me.Master.Page).RegisterPostBackControl(btnupload);