我有一個index.php和upload.php。在里面index.php是一個form action="upload.php"帶有input type="file" id="file" name="file"標簽的。PHP代碼是:
<?php
$file = $_FILES['file'];
print_r($file);
echo "test";
?>
出于某種原因,它顯示echo但print_r()不起作用。
我試過重寫代碼。input為里面的標簽添加其他識別符號,index.php但它仍然不起作用。我究竟做錯了什么?
uj5u.com熱心網友回復:
也許你忘記了 enctype="multipart/form-data"
試試這個版本
<form action="upload.php" method="post" enctype="multipart/form-data">
<p><input type="file" name="file">
<p><button type="submit">Submit</button>
</form>
</body>
</html>
uj5u.com熱心網友回復:
假設您已經可以上傳檔案,例如使用如下形式:
<form action="upload.php" method="post" enctype="multipart/form-data">
<p><input type="file" name="file">
<p><button type="submit">Submit</button>
</form>
</body>
</html>
然后,如果您想在接收“upload.php”處顯示影像,您可以使用:
如果影像是 JPG/JPEG 型別:
<?php
$string1= base64_encode(file_get_contents($_FILES["file"]["tmp_name"]));
echo '<img src="data:image/jpeg;base64, ' . $string1 . '"/>';
?>
如果影像是 PNG 型別:
<?php
$string1= base64_encode(file_get_contents($_FILES["file"]["tmp_name"]));
echo '<img src="data:image/png;base64, ' . $string1 . '"/>';
?>
注意:實際上我們通常將上傳的檔案保存在服務器中(以供稍后顯示),或者將二進制資料存盤到db表中的BLOB欄位中,但上面的代碼是為了演示如何立即顯示上傳的影像。
uj5u.com熱心網友回復:
你沒有提到上傳的是什么型別的檔案。這是一個影像上傳的示例。允許選擇多個影像。
<form action="upload.php" method="post" enctype="multipart/form-data">
Get a Photo from your device <br>
<input type="file" name="image1[]" multiple accept="image/png, image/jpeg, image/gif, image/webp" /><br>
<button type="submit">Upload Photo</button>
</form>
并上傳PHP:
foreach ($_FILES["image1"]["error"] as $key => $error) {
if ($error == 0 ) {
$tmp_name = $_FILES["image1"]["tmp_name"][$key];
$name = basename($_FILES["image1"]["name"][$key]);
$result = move_uploaded_file($tmp_name, "$uploads_dir/$name");
if($result == false){echo "not moved\n";}
}
if($error > 0){echo "error $error\n";}
}
要確定上傳的影像型別:
switch(strtolower($_FILES['image1']['type'])){
case 'image/jpeg':
$image = @imagecreatefromjpeg($_FILES['image1']['tmp_name']);
if ($image !== false){$save = true;break;}
case 'image/png':
$image = @imagecreatefrompng($_FILES['image1']['tmp_name']);
if ($image !== false){$save = true;break;}
case 'image/gif':
$image = @imagecreatefromgif($_FILES['image1']['tmp_name']);
if ($image !== false){$save = true;break;}
case 'image/webp':
$image = @imagecreatefromwebp($_FILES['image1']['tmp_name']);
if ($image !== false){$save = true;break;}
default:
$img = @getimagesize($_FILES['image1']['tmp_name']);
switch(strtolower($img['mime'])){
case 'image/jpeg':
$image = @imagecreatefromjpeg($_FILES['image1']['tmp_name']);
if ($image !== false){$save = true;break;}
case 'image/png':
$image = @imagecreatefrompng($_FILES['image1']['tmp_name']);
if ($image !== false){$save = true;break;}
case 'image/gif':
$image = @imagecreatefromgif($_FILES['image1']['tmp_name']);
if ($image !== false){$save = true;break;}
default:
$filename = $_FILES['image1']['name'];
$ext = substr($filename,-3);
switch(strtolower($ext)){
case 'jpg':
$image = @imagecreatefromjpeg($_FILES['image1']['tmp_name']);
if ($image !== false){$save = true;break;}
case 'ebp':
$image = @imagecreatefromwebp($_FILES['image1']['tmp_name']);
if ($image !== false){$save = true;break;}
case 'gif':
$image = @imagecreatefromgif($_FILES['image1']['tmp_name']);
if ($image !== false){$save = true;break;}
case 'png':
$image = @imagecreatefrompng($_FILES['image1']['tmp_name']);
if ($image !== false){$save = true;break;}
default:
$image = @imagecreatefromjpeg($_FILES['image1']['tmp_name']);
if ($image !== false){$save = true;break;}
$image = @imagecreatefrompng($_FILES['image1']['tmp_name']);
if ($image !== false){$save = true;break;}
$image = @imagecreatefromgif($_FILES['image1']['tmp_name']);
if ($image !== false){$save = true;break;}
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/522366.html
標籤:phphtml阿帕奇
下一篇:Laravel忽略重復查詢請求
