10/10/2018, 09:50

Hiển thị ảnh trong PHP (ko phải từ CSDL)

Mình làm 1 form để thêm Catalog (trang addcatalog.php) như sau:

PHP Code:
<form name="frm_addnews" action="index.php?page=processaddcatalog" method="post">
                <
table width="550" border="0" cellpadding="0" cellspacing="4" align="center">
                    <
tr>
                        <
td>
                                <
table width="500" border="0" cellpadding="0" cellspacing="4">
                                  <
tr>
                                    <
td width="120" align="left"><strong>Tiêu chuyên mục:</strong></td>
                                    <
td align="left"><input type="text" name="txttenchuyenmuc" size="30" maxlength="20"/>
                                      &
nbsp;<font color="#FF0000">*</font></td>
                                  </
tr>
                                  <
tr>
                                    <
td width="120" align="left"><strong>Mô tả:</strong></td>
                                    <
td align="left"><textarea name="txtareamota" style=" width:204px; height:60px;"></textarea>
                                      &
nbsp;<font color="#FF0000">*</font></td>
                                  </
tr>
                                  <
tr>
                                    <
td width="120" align="left"><strong>Hình ảnh:</strong></td>
                                    <
td align="left"><input type="file" name="fileimage" size="30" maxlength="20"/></td>
                                  </
tr>
                                  <
tr>
                                    <
td width="120" align="left">&nbsp;</td>
                                    <
td align="left"><p>
                                        <
input type="reset" name="reset" value="Hủy bỏ" />
                                        <
input type="submit" name="submit" value="Đồng ý" /></p>
                                    </
td>
                                  </
tr>
                                </
table>
                        </
td>
                    </
tr>
                </
table>
            </
form
Rồi sau đó viết 1 trang chỉ đơn giản là hiển thị các thông tin vừa nhập ở trên ra màn hình (procesdcatalog.php), mà chỗ hình ảnh nó chỉ hiện tên file ảnh chứ ko hiện ra hình ~> mình ko sửa chỗ này mong các bạn giúp đỡ

PHP Code:
            <?php
                $tenchuyenmuc
=$_POST***91;"txttenchuyenmuc"***93;;
                
$mota=$_POST***91;"txtareamota"***93;;
                
$hinhanh=$_POST***91;"fileimage"***93;;

                echo 
"<b>Tên chuyên mục : </b>".$tenchuyenmuc."<br>";
                echo 
"<b>Mô tả : </b>".$mota."<br>";
                echo 
"<b>Hình ảnh : </b> <img src=".$hinhanh." />".$hinhanh."<br>";
            
?>
tungoso viết 12:06 ngày 10/10/2018
đơn giản vì cái file ảnh (Clb Arsenal.jpg) ko nằm cùng thư mục với file php
hoichobiet2212 viết 11:53 ngày 10/10/2018
Nằm cùng chứ bạn, trong thư mục images của thư mục chứa các file php
Vậy mà ko hiểu sao nó ko hiện
truongsinh.vn viết 11:50 ngày 10/10/2018
Thay
$hinhanh=$_POST["fileimage"];
Bằng
$hinhanh=$_FILES["fileimage"]['name'];

[=========> Bổ sung bài viết <=========]

copy ( $_FILES ['fileimage'] ['tmp_name'], $hinhanh)
hoichobiet2212 viết 12:00 ngày 10/10/2018
Được gửi bởi truongsinh.vn
Thay
$hinhanh=$_POST["fileimage"];
Bằng
$hinhanh=$_FILES["fileimage"]['name'];

[=========> Bổ sung bài viết <=========]

copy ( $_FILES ['fileimage'] ['tmp_name'], $hinhanh)
PHP Code:
$hinhanh=$_FILES***91;"fileimage"***93;***91;'name'***93;;
// Nếu để dòng dưới thì bị lỗi
// copy ( $_FILES ***91;'fileimage'***93; ***91;'tmp_name'***93;, $hinhanh) 
echo "<b>Hình ảnh : </b> <img src=".$hinhanh." />".$hinhanh."<br>"
Viết lại thế này phải ko bạn !?? ~> Cũng ko hiện dc hình bạn ơi...
thuyduongcd viết 12:01 ngày 10/10/2018
Vì thực tế khi dùng form upload lên server, nó chỉ được upload tạm vào thư mục temp (dễ thấy nhất là bạn chưa chỉ định nó sẽ upload lên thư mục nào trong server) và cái mà bạn lấy $_POST["fileimage"] cũng chỉ là tên file (nói trắng ra là nội dung của thẻ input)
Ở fle nhận action sửa lại như sau:
Code:
$tenchuyenmuc=$_POST["txttenchuyenmuc"];
$mota=$_POST["txtareamota"]; 
$target_path = "uploads/"; // thư mục sẽ chứa file
$target_path = $target_path . basename( $_FILES['fileimage']['name']); // ghép tên file vào với tên thư mục
if(move_uploaded_file($_FILES['fileimage']['tmp_name'], $target_path)) {
    echo "Chuyên mục: $tenchuyenmuc <br />";
    echo "Mô tả: $mota <br />";
    echo "Hình ảnh: <img src='$target_path' />";
} else{
    echo "Không thể upload file. Xin hãy thử lại!";
}
// nếu cẩn thận có thể thêm vài dòng check filetype, size.
// Biết đâu có tay nào upload 1 con sâu lên thì sao
hoichobiet2212 viết 12:01 ngày 10/10/2018
Nó toàn báo là "Không thể upload file. Xin hãy thử lại!" bạn ơi
Có cách nào khắc phục nữa ko bạn!? :-s
rootkit viết 12:04 ngày 10/10/2018
Được gửi bởi hoichobiet2212
Nó toàn báo là "Không thể upload file. Xin hãy thử lại!" bạn ơi
Có cách nào khắc phục nữa ko bạn!? :-s
cái biến $target_path phải là tên file mới đúng :$target_path="uploads/file_anh.jpg";
thuyduongcd viết 11:51 ngày 10/10/2018
Nó toàn báo là "Không thể upload file. Xin hãy thử lại!" bạn ơi
Như vậy có nghĩa là hàm move_uploaded_file() trả về false. Thử kiểm tra setting trên server (có được upload file hay không? Filesize có vượt quá limit không? Kiểu file có được chấp nhận không? Đa số những host share hay bị limit vấn đề này).
Có thể echo ra nội dung $_FILES['fileimage']['tmp_name'] và $target_path xem nó là gì và FTP vào server xem file đó có tồn tại không.
Ngoài câu đó còn có kèm câu thông báo Error nào nữa không?
mitdacqn viết 11:57 ngày 10/10/2018
Bạn thiếu cái quan trọng nhất trong cái form đó:
PHP Code:
<form action="" method="post" enctype="multipart/form-data"
Bạn phải thêm thuộc tính enctype="multipart/form-data" thì form mới upload file được.
Bài liên quan
0