【发布时间】:2012-09-07 16:55:31
【问题描述】:
提前感谢您的帮助,我希望我对我的请求的解释是可以理解的。
我有一个网站,我在其中上传各种 HTML 页面,其中包含脚本、网站等,我发现这些页面随着时间的推移很有用...目的是 1) 为自己提供参考,以及 2) 分享我的发现和其他人一起。
该网站由 2 个部分组成。用于查找脚本的搜索页面和用于上传脚本的管理页面。上传的 HTML 文件被放置在我服务器上的“docs/”目录中,详细信息被添加到搜索页面的 MySQL 数据库中。
表格如下所示:
<form name="upload" enctype="multipart/form-data" action="includes/add.php"
method="post" onsubmit="return validateForm();">
<label for="scriptname">Script Name</label><input class="inputarea" type="text"
name="scriptname"><br>
<label for="category">Category</label><input class="inputarea" type="text"
name="category"><br>
<label for="keywords">Keywords</label><input class="inputarea" type="text"
name="keywords"><br>
<label for="content">HTML File</label><input class="inputarea" type="file"
name="content"><br>
<input class="submit" type="submit" value="Add">
</form>
我的问题是...... JavaScript 或 PHP 有什么办法可以做到以下几点:
- 为上传的文件生成一个自动文件名(几个随机数字就可以了)
-
在“脚本名称”输入字段中,在提交时添加文本,以便将脚本名称和文件名作为文本添加到数据库中的超链接...例如。当按下提交按钮时,将以下内容添加到数据库中:
粗体部分取自生成的文件名,斜体部分取自输入字段...
这样做的目的是为了在搜索结果中,当出现带有脚本名称的数据库列时,脚本名称是指向实际文件的链接。我已经准备好搜索功能,它可以从数据库条目中创建链接,但我只需要简化上传过程。
如果这不可能,是否有其他方法可以实现?
---编辑---
感谢大家的帮助!非常感谢,我结合了一些建议来解决这个问题。但是,我将功劳归功于 Ibere,因为他的解决方案是最接近的。
这是我用于处理上传和数据库添加的“add.php”文件的最终代码,以防它再次出现(我对此表示怀疑):P
<?php
$filename = md5($_FILES['content']['name']);
$labelForUrl = $_POST['scriptname'];
$url = "<a href=\"docs/$filename\">$labelForUrl</a>";
$target = "../docs/";
//This gets all the other information from the form
$name=$_POST['scriptname'];
$cat=$_POST['category'];
$key=$_POST['keywords'];
$link=$_POST['link'];
$file=($_FILES['content']['scriptname']);
// Connects to your Database
mysql_connect("localhost", "username", "password") or
die(mysql_error()) ;
mysql_select_db("scripts") or die(mysql_error()) ;
//Writes the information to the database
mysql_query("INSERT INTO scripttable (scriptname,category,keywords,link,content)
VALUES ('$url', '$cat', '$key', '$link', '$file')") ;
if(move_uploaded_file($_FILES['content']['tmp_name'], $target . $filename)) {
echo "The file ". $labelForUrl.
" has been uploaded";
}
else {
echo "There was an error uploading the file, please try again!";
}
?>
【问题讨论】:
-
这些应该是对您当前上传脚本的小改动。你能发布那个脚本吗?
标签: php javascript mysql forms file-upload