我创建了一个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']))