事前に助けてくれてありがとう、私のリクエストの説明が理解できることを願っています.
私は、スクリプトやウェブサイトなどを含むさまざまな HTML ページをアップロードするウェブサイトを持っています。これらは、時間の経過とともに役立つことがわかりました... 1) 自分自身の参考資料として、および 2) 見つけたものを他のユーザーと共有するためです。
Web サイトは 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で次のことを行う方法はありますか:
- アップロードされたファイルの自動ファイル名を生成します (いくつかのランダムな数字で十分です)
「スクリプト名」入力フィールドに、送信時にテキストを追加して、スクリプト名とファイル名をテキストとしてデータベースに追加されるハイパーリンクにします。送信ボタンが押されると、以下がデータベースに追加されます。
<a href="docs/automatic_file_name.html "> " scriptname_input "</a>
太字部分は生成されたファイル名から取得され、イタリック部分は入力フィールドから取得されます...
これの目的は、検索結果で、スクリプト名を含むデータベース列が表示されたときに、スクリプト名が実際のファイルへのリンクになるようにすることです。検索機能の準備ができており、データベース エントリからリンクを作成できますが、アップロード プロセスを簡素化する必要があるだけです。
これが不可能な場合、これを達成する別の方法はありますか?
- -編集 - -
ご協力ありがとうございました!いくつかの提案を組み合わせて使用して解決しました。しかし、彼のソリューションが最も近かったので、Ibere の功績を称えました。
これは、アップロードとデータベースの追加を処理する 'add.php' ファイルに使用した最終的なコードです。
<?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!";
}
?>