как при добавлении изображения на сервер считывать имя в БД?
Проблема в том что при добавлении изображения на сервер имя в БД (MySQL) у меня не получается считать. Вот то что я делала:
if(isset($_POST['save'])){ mysql_connect("localhost","root",""); mysql_select_db("realtyy"); $imgDir = "images"; @mkdir($imgDir, 0777); if (@$_REQUEST['doUpload']) { $data = $_FILES['file1']; $tmp = $data['tmp_name']; if (@file_exists($tmp)) { $info = @getimagesize($_FILES['file1']['tmp_name']); if (preg_match('{image/(.*)}is', $info['mime'], $p)) { $name = "$imgDir/".time().".".$p[1]; move_uploaded_file($tmp, $name); } else { echo "<h2>Попытка добавить файл недопустимого формата!</h2>"; } } else { echo "<h2>Ошибка закачки #{$data['error']}!</h2>"; } } далее отправка всех данных в БД: $sql="INSERT INTO `dob` ( `id`, `kind`, `type`, `area`, `street`, `metric`, `price`, `val`, `phone`, `e-mail`, `img`, `detail` ) VALUES ( '', '".$_POST['kind']."', '".$_POST['t']."', '".$_POST['r']."', '".$_POST['st']."', '".$_POST['metr']."', '".$_POST['cena']."', '".$_POST['val']."', '".$_POST['phone']."', '".$_POST['email']."', '".$_POST['file1']."', '".$_POST['det']."')"; $res = mysql_query($sql); } и вот данные отправки изображения: <tr id="iM38"><td class="manTd1" id="iM39">изображения (GIF, JPEG, PNG):<div class="fHelp">макс.размер - <b>500</b>Kb</div></td><td class="manTd2" id="iM40"><div style="display:inline;" id="iplus"><input class="button" style="width:24px;" type="button" value=" + " onclick="addImgF();" title="добавить поле для файла"> </div><input type="file" id="fln1" name="file1" size="20" onchange="getimage(1);"><span id="iCode1"></span><div id="imblock"></div></td></tr> |
хм... я нашла выход из данной ситуации с помощью :
$_FILES['file1']['name'] но у меня появился новый вопрос...название выводит... но почему-то загрузка изображения на страницу не происходит. Показываю код: <script> function win(detail, street, phone, img) { msg=window.open("","msg","height=400,width=400,left=200,top=200"); msg.document.write("<html><head><title>" + street + "</title></head>"); msg.document.write("<body>"); msg.document.write("<Table><tr><td>" + detail + "</td></tr>"); msg.document.write("<tr><td>тел: " + phone + "</td></tr>"); msg.document.write("<tr><td><a rel='lightbox[roadtrip]' title='фото' href='images/" + img + "'><img src='images/" + img + "' ></a></td></tr>"); msg.document.write("</table></body></html>"); msg.focus(); } </script> ini_set('display_errors',1); error_reporting(E_ALL); mysql_connect ("localhost", "root", ""); mysql_select_db('realtyy'); $sql = "SELECT * FROM `dob` WHERE `type` LIKE 'aa' ORDER BY `id` DESC"; $result = mysql_query($sql); $data = array(); while($res=mysql_fetch_array($result)) { echo "<TR bgcolor=#FLEFE5>"; echo "<TD ALIGN=CENTER>".$res['id']."</TD>"; echo "<TD ALIGN=CENTER><B><i>".$res['area']."</i></B></TD>"; echo "<TD ALIGN=CENTER>".$res['street']."</TD>"; echo "<TD ALIGN=CENTER>".$res['metric']."</TD>"; echo "<TD ALIGN=CENTER><pre>".$res['price']." ".$res['val']."</pre></TD>"; echo "<TD ALIGN=CENTER>".$res['phone']."</TD>"; echo "<TD width='30%' ALIGN='CENTER'><a href='#' onclick='win(\"" . htmlentities($res['detail'], ENT_QUOTES, "cp1251") . "\", \"" . htmlentities($res['street'], ENT_QUOTES, "cp1251") . "\", \"" . htmlentities($res['phone'], ENT_QUOTES, "cp1251") . "\",\"".htmlentities($res['img'], ENT_QUOTES, "cp1251")."\")'>открыть</a></TD> "; echo "<TD ALIGN=CENTER>".$res['date']."</TD>"; echo "</TR>"; }; вот.. рисунок должен выводится в дополнительном окошке вместе с инфо... здесь наверняка как всегда элементарная ошибка, но пока я ее не вижу... увы... |
solomusic,
У вас же $name = "$imgDir/".time().".".$p[1]; move_uploaded_file($tmp, $name); Следовательно нужно именно этот $name и записывать в базу данных. (Это путь к реальной картинке) Иначе у вас записывается название "временного" файла (хранимый только до конца исполнения скрипта). Возможно я неправильно понял проблему, чуть позже посмотрю подробнее. |
Вы правильно поняли проблему... а я по всей видимости уже немного устала... от этого сайта... спасибо ВАМ. ;) все выводится... )
|
Часовой пояс GMT +3, время: 09:52. |