2011-09-10 43 views
0

我創建了一個HTML和PHP表單,幾乎只是將數據輸入到MySQL表中。
我有一個文件上傳字段,但它沒有上傳文件。我不希望它上傳任何東西到服務器上,我只想要它抓取所選文件的位置並將其輸入到數據庫中。

它在Internet Explorer上運行得非常好,但不適用於任何其他瀏覽器,我認爲這是因爲它帶來的安全問題。

我輸入代碼:'上傳'表格以獲取文件的完整位置?

<input type="file" id="filename" name="filename" /> 

當表單提交一些PHP代碼,當然還有貫穿到的數據插入到數據庫。我試過JavaScript將該字段的值複製到另一個字段,但又因爲安全問題無效。

有誰知道一種方法,我可以在JavaScript中做到這一點?甚至是Flash?說實話,任何與這些類似的東西都可以做,只是在IE以外的瀏覽器中可以使用。

謝謝。

編輯 -

這裏是我的代碼:

<?php 
if (isset($_POST['submit'])) { 
    $name = addslashes(htmlentities($_POST['name'])); 
    $filename = addslashes(htmlentities($_POST['filename'])); 

    if (@mysql_query("INSERT INTO movies SET 
         name='$name', 
         doc_filename='$filename'")) { 
     echo '<p>Movie added.</p><p><a href=movies.php">Manage movies</a>.</p>'; 
    } else { 
     echo '<strong>Error:</strong> '.mysql_error().''; 
    } 
} else { 
?> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="newspost" enctype="multipart/form-data"> 
    <div class="form-row"> 
     <label for="fm_title">Movie file path: </label><br /> 
     <input type="file" id="filename" name="filename" /> 
    </div><br /> 
    <div class="form-row"> 
     <label for="fm_title">Movie name: </label><br /> 
     <input type="text" class="input-width" name="name" value="<?php if (!empty($_POST['name'])) { echo $_POST['name']; } ?>" /> 
    </div> 
    <div class="form-row"> 
     <input type="submit" name="submit" value="Submit" /> 
    </div> 
</form> 
<?php 
} 
?> 
+0

的其他部分,請包括對IE – ajreal

+0

工作沒有JavaScript的IE瀏覽器中的JavaScript。 IE似乎工作。我輸入「文件名」字段的完整值,然後將完整的位置插入到文件中。 –

+0

然後向我們展示HTML表單和PHP代碼! – ajreal

回答

1

所有我想要的是它抓住選擇輸入的是到數據庫中的文件的位置。

這不再可能使用HTML - 出於安全原因,所選文件的位置不能在文件輸入的DOM元素中訪問。大多數瀏覽器使用C:\Fakepath\

您可以使用基於Flash或Java的上傳程序來獲取此信息(編輯:例如,請參閱AS3手冊中的this pageSWFUpload's API值得一看。不過,您可能需要爲此構建自己的Flash或Java解決方案。

+0

感謝您的信息! :)無論如何,我認爲還有些事情需要處理。我會看看這些鏈接!謝謝:) –

0

如何發佈表單的數據?我無法看到任何形式的帖子。沒有提交按鈕或onclick或onchange事件的JavaScript?以及如何你覺得這條線給輸出

<input type="text" class="input-width" name="name" value="<?php if (!empty($_POST['name'])) { echo $_POST['name']; } ?>" /> 

其已在該行

if (isset($_POST['submit']))

+0

該表格僅在表單提交後才提供輸出。我已經編寫了錯誤檢查代碼,但是我沒有打擾將代碼複製到這裏的代碼,因爲它佔用了太多的空間。對於提交按鈕感到抱歉,我忘了將其複製。它現在在那裏。表單提交正常,我需要幫助的是文件路徑。 –

相關問題