& # 39;上传# 39;窗体获取文件的完整位置


'Upload' form to grab complete location of file?

我创建了一个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
}
?>

我想要的只是让它获取所选文件的位置并将其输入到数据库中。

这在HTML中是不可能的——出于安全原因,在文件输入的DOM元素中无法访问所选文件的位置。大多数浏览器使用C:'Fakepath'代替。

你可以使用基于Flash或Java的上传器获得这些信息(编辑:参见AS3手册中的此页)SWFUpload的API值得一看。不过,您可能需要为此构建自己的Flash或Java解决方案。

如何发布表单的数据?我看不出有什么办法可以寄出去。没有提交按钮或onclick或onchange事件的javascript?以及这一行如何输出

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

已经在行else部分

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