【问题标题】:File is not found in for uploading找不到要上传的文件
【发布时间】:2013-12-27 16:51:27
【问题描述】:

我正在尝试通过服务器中的以下代码将excel文件上传到sql数据库中

我可以在服务器中打开 excel 文件,但我无法通过 asp 页面将此文件上传到 sql。即使我通过文件浏览器控件选择文件,它也显示未找到文件。我浏览时屏幕上显示文件名。但是当我单击上传按钮时找不到它。请帮助我

我的 C# 代码是这样的

   protected void btnUpload_Click(object sender, EventArgs e)
    {
       if (fileuploadExcel.HasFile)
        {
           SqlConnection conn1 = new SqlConnection(str);
        //file upload path


        string path = fileuploadExcel.PostedFile.FileName;


        //Create connection string to Excel work book
        string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\" + path + ";Extended Properties=Excel 12.0;Persist Security Info=False";
        //Create Connection to Excel work book
        OleDbConnection excelConnection = new OleDbConnection(excelConnectionString);
        //Create OleDbCommand to fetch data from Excel
        OleDbCommand cmd = new OleDbCommand("Select [Date],[PName],[SQE Reived],[SQE processed] from [Sheet1$]", excelConnection);
        excelConnection.Open();
        OleDbDataReader dReader;
        dReader = cmd.ExecuteReader();
        SqlBulkCopy sqlBulk = new SqlBulkCopy(conn1);
        //Give your Destination table name
        conn1.Open();
        sqlBulk.DestinationTableName = "SQE";
        sqlBulk.WriteToServer(dReader);
        excelConnection.Close();
    }
}

我的asp页面macrkup

<table>
 <tr>
 <td>
 <asp:Button ID="Button1" Text="Upload Productivity data in to iConnect"     runat="server" CssClass="style88"  
                     Font-Bold="False" Height="36px" Width="750px" Font-        Names="Calibri" ForeColor="White" Font-Size ="large"   Border-radius="0px 0px 0px 0px"
                                       ></asp:Button>

   </td>
      </tr>
     <tr>
      <td>
      <a href="SQEprTemplate.xlsx">Download Template for upload</a>

    <br />
     <br />

 </td>

 <tr>
 <td>
  <asp:Panel ID="Panel1" runat="server">
         <asp:FileUpload ID="fileuploadExcel" runat="server" />
        <asp:Button ID="btnUpload" runat="server" Text="Upload" 
           onclick="btnUpload_Click" />
        <br/>

     </asp:Panel>


 </td>

 </tr>



 </tr>
 </table>

【问题讨论】:

  • 尝试先上传文件,正如史蒂夫提到的那样。他的例子也涵盖了格兰特温尼提到的问题。

标签: c# asp.net


【解决方案1】:

我相当肯定path 已经包含驱动器号,但您将在下一行的开头附加D:\\

... Source=D:\\" + path ...

尝试删除D:\\

【讨论】:

  • 我的代码没有进入 if (fileuploadExcel.HasFile)。
【解决方案2】:

fileuploadExcel.PostedFile.FileName客户端机器上的名称,完整的路径。
此文件在服务器机器中不存在,您需要在尝试使用之前保存它

string serverFolder = Server.MapPath("APP_DATA");
string serverFile = Path.Combine(serverFolder, Path.GetFileName(fileuploadExcel.PostedFile.FileName));
fileuploadExcel.PostedFile.SaveAs(serverFile);
string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;" + 
                               @"Data Source=" + serverFile + 
                               @";Extended Properties=Excel 12.0;Persist Security Info=False";

【讨论】:

    猜你喜欢
    • 2018-03-07
    • 2019-01-30
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 2019-07-15
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    相关资源
    最近更新 更多