2013-11-26 41 views
0

我有一個HTML頁面,其中用戶可以上傳一個.txt文件到服務器的表單。他們選擇文件並按上傳按鈕,文件通過PHP腳本上傳到網站根文件夾。在此根文件夾中有一個.xlsm文件,用戶可以使用該文件將其上載的文件上載到MS SQL服務器數據庫中,該數據庫運行查詢並將結果發送回.xlsm文件。Excel VBA - 文件不存在遠程用戶的錯誤消息

我遇到的問題是,當用戶上傳文件時,臨時文件被移動(使用move_uploaded_file方法)到網站根目錄,並且保存的文件被上傳到數據庫,但用戶不斷收到錯誤消息該文件不存在。當我從另一個目錄手動將文件複製到根目錄時,用戶可以將數據上傳到數據庫。
這就像臨時文件被移動到根目錄但沒有使其可用。這裏是我的代碼:

HTML:upload.html

<html> 

    <form enctype="multipart/form-data" action="upload.php" method="POST"> 
     <input type="hidden" name="MAX_FILE_SIZE" /> 
     Choose a file to upload: <input name="nfile" type="file" /><br /> 
     <input type="submit" value="Upload File" /> 
    </form> 

    <br><br> 
    <a href='Lostsales.xlsm'>Spreadsheet</a> 
</html> 

PHP:php.html

<?php 

$name = $_FILES["nfile"]["name"]; 
$tmp_name = $_FILES["nfile"]["tmp_name"]; 

move_uploaded_file($tmp_name, $name); 

echo $tmp_name; 

?> 
<html> 
<form action="upload.html"> 
<input type="submit" value="Done" /> 
</form> 
</html> 
用於上傳數據到MS SQL數據庫

VBA代碼:Lostsales.xlsm

Sub Button1_Click() 


    Dim con As New ADODB.Connection 

    con.Open "Provider=SQLOLEDB.1;Password=valencia;Persist Security Info=True;User ID=lostsls;Initial Catalog=Lost_sales;Data Source=PCS2635\SQLEXPRESS" 

    con.Execute "BULK INSERT lsdata FROM '" & Cells(7, 1).Value & "' WITH(FIRSTROW = 2, FIELDTERMINATOR='\t' ,ROWTERMINATOR='\n')" 

    con.Close 
    Set con = Nothing 


End Sub 

Cells(7, 1).Value = C:\inetpub\wwwroot\test\lostsls\import.txt

當遠程用戶運行VBA宏時,他/她會收到文件C:\inetpub\wwwroot\test\lostsls\import.txt不存在的消息。其中import.txt是用戶在HTML/PHP代碼中上傳的文件。當我嘗試它時,會上傳。

回答

0

我說得對。而不是使用move_uploaded_file($tmp_name, $name)我在我的PHP腳本中使用了copy($tmp_name, $name)

uploaded_file方法似乎沒有將文件複製到文件夾並使其可用。

相關問題