#php #mysql #html #file-upload
#php #mysql #HTML #загрузка файла
Вопрос:
У меня настроен скрипт отправки, где люди могут отправлять свои данные и загружать вложение. Все это записывается в базу данных в вызываемой таблице Submissions
со следующими полями: fname
, lname
, snumber
и upload
.
upload
Поле в настоящее время является местоположением файла на сервере, например, в одной записи говорится uploads/123456.zip
(uploads — это каталог, 123456.zip это имя файла).
У меня также есть серверная система администрирования, в которой отображаются все отправленные данные. Код, используемый для этого, следующий:
<html>
<head>
<title>Internal Database Listing</title>
<style type="text/css">
/**** Start page styles ****/
body {
background: #DFA01B;
font-family: arial, sans-serif;
font-size: 14px;
}
#wrap {
max-width: 900px;
margin: 30px auto;
background: #fff;
border: 4px solid #FFD16F;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
border-radius: 15px;
padding: 20px;
}
table.subs {
text-align: center;
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif ;
font-weight: normal;
font-size: 11px;
color: #fff;
width: 800px;
background-color: #666;
border: 0px;
border-collapse: collapse;
border-spacing: 0px;
}
table.subs td
{background-color: #CCC;
color: #000;
padding: 4px;
text-align: left;
border: 1px #fff solid;}
table.subs td.hed
{background-color: #666;
color: #fff;
padding: 4px;
text-align: left;
border-bottom: 2px #fff solid;
font-size: 12px;
font-weight: bold;}
</style>
</head>
<body>
<?php
$username="dbuser";
$password="dbuserpass";
$database="dbsub";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM Submissions";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();
?>
<div id="wrap">
<div align="left">
<img src="logo.png" width="208" height="87" />
</div>
<div align="center">
<h1 style="font-family:arial">Total submissions</h1>
</div>
<div align="center">
<table class="subs" border="1" cellspacing="1" cellpadding="3">
<tr>
<th><font face="Arial, Helvetica, sans-serif">First name</font></th>
<th><font face="Arial, Helvetica, sans-serif">Last name</font></th>
<th><font face="Arial, Helvetica, sans-serif">Student #</font></th>
<th><font face="Arial, Helvetica, sans-serif">Grade</font></th>
<th><font face="Arial, Helvetica, sans-serif">Submission</font></th>
</tr>
</div>
</div>
<?php
$i=0;
while ($i < $num) {
$f1=mysql_result($result,$i,"fname");
$f2=mysql_result($result,$i,"lname");
$f3=mysql_result($result,$i,"snumber");
$f4=mysql_result($result,$i,"grade");
$f5=mysql_result($result,$i,"upload");
?>
<tr>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f1; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f2; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f4; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f5; ?></font></td>
</tr>
<?php
$i ;
}
?>
</body>
</html>
Этот код работает отлично, за исключением поля загрузки, которое он отображает upload/123456.ppt . Как мне заставить его отображаться http://sitename.com/uploads/123456.ppt И сделать его гиперссылкой на этот файл?
Комментарии:
1. Не используйте
FONT
, оно устарело. ИспользоватьSPAN
.
Ответ №1:
Просто оберните вывод в <a>
тег
<td><font face="Arial, Helvetica, sans-serif"><a href="http://sitename.com/<?php echo $f5; ?>"><?php echo $f5; ?></a></font></td>
Комментарии:
1. Похоже, у вас есть несколько дополнительных символов, исправленный код
<td><font face="Arial, Helvetica, sans-serif"><a href="http://sitename.com/<?php echo $f5; ?>"><?php echo $f5; ?></a></font></td>
. Несмотря на это, это было именно то, что мне было нужно. Спасибо!2. Действительно, лишнее
="
по какой-то причине. Удалено сейчас, спасибо. Всегда пожалуйста.
Ответ №2:
Далее будет напечатана ссылка, содержащая фиксированный URL.
<?php
$url = 'http://www.' . $_SERVER['SERVER_NAME'] . '/' . $f1;
echo '<a href="' . $url . '">Click here to download the file!</a>';
Если $_SERVER[‘ИМЯ_СЕРВЕРА’] неверно для вашего веб-сайта, вы можете просто заменить его правильным доменным именем.
Комментарии:
1. У Бена был код, который точно соответствовал сценарию, однако ваш ответ — это именно то, что я искал в другом месте! Спасибо.