2013-07-25 194 views
0

我正在使用asp.net fileupload控件從我的系統上傳excel文件,以便將excel文件導出到sql server。當我從我的路徑上傳文件時,它只會加載文件名而不是完整的路徑。我需要完整的路徑來執行SQL Server存儲過程中的Excel文件。因爲沒有完整路徑存儲過程的Excel不工作。如何解決這個問題?如何在文件上傳控制中獲取文件名的完整路徑

這是我需要完整路徑的excel文件的存儲過程,因此我需要獲取完整路徑。

alter procedure [dbo].[sp_excelforgeneralholidays](@filname nvarchar(max),@getdate datetime,@adminid int) 
as 
declare @datavar nvarchar(max) 
declare @sql varchar(1000) 

set @datavar = 'Excel 12.0;Database=' + @filname 

set nocount on 
    begin 
    set @sql ='insert into Generalholyday_details(Date,Day,Reason) SELECT * FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0'','''[email protected]+';HDR=YES'',''SELECT Date,Day,Reason FROM [Sheet1$]'')' 
exec (@sql) 
    end 
+2

文件上傳控制,使您的文件的副本 - 你可以把你喜歡的地方,然後談談它的SQL Server。但它不會做的是告訴你文件來自哪裏。瀏覽器不提供該信息,因爲這會是一個安全問題。 –

+0

如果您想要完整路徑,則需要先保存文件,然後才能獲取保存的位置。 – Bharadwaj

+1

@Damien_The_Unbeliever _「瀏覽器不提供這些信息,因爲這將是一個安全問題。」 - - 並且沒用,因爲服務器無法對路徑做任何事情,因爲該路徑指向客戶端上的文件。 – CodeCaster

回答

0

使用此。

string pth = Server.MapPath(FileUpload1.FileName); 
+0

不,我只獲取文件名。 – baskaran

+0

baskaran,你說**文件名**的完整路徑,但現在只有**文件名**。你實際需要什麼? – zey

+0

我編輯過,請檢查。它會給你完整的路徑。 – Raghubar

0

嘗試

Server.MapPath(FileUpload1.FileName); 

希望它能幫助。

+0

server.MapPath將文件路徑設置爲我的項目文件路徑名。但我的系統中有一個c:\ excel文件。所以當我想上傳一個文件爲C:\ Gengeralholiday.xlsx – baskaran

0

使用這種嘗試....

string filename = Path.GetFileName(FileUploadControl.FileName); 

FileUploadControl.SaveAs(Server.MapPath("~/") + filename); 

StatusLabel.Text = "Upload status: File uploaded!"; 
+0

如何獲得這個保存的文件名字符串 – baskaran

相關問題