我需要一些建议/帮助。我可以上传图片并成功移入(上传文件夹),但是,每个图片在上传后都有两个不同的文件名(tmp_name
和$_FILES["file"]["name"]
),如果有人可以在这里提供帮助,我们将不胜感激。 。谢谢。
<form id="form" action="espaceupload.php" method="post" enctype="multipart/form-data">
<input id="uploadImage" type="file" accept="image/*" name="file" /><br>
<input id="button" type="submit" value="Preview">
</form>
<?php
$valid_exts = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions
$max_size = 5000000 * 1024; // max file size
$path = "upload/" . $_FILES["file"]["name"]; // upload directory
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if( ! empty($_FILES['file']) ) {
$imagedata = addslashes (file_get_contents($_FILES['file']['tmp_name']));
$imagename = ($_FILES['file']['tmp_name']);
$imagetype =($_FILES['file']['type']);
$imagesize= $_FILES['file']['size'];
// get uploaded file extension
$ext = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION));
// looking for format and size validity
if (in_array($ext, $valid_exts) AND $_FILES['file']['size'] < $max_size) {
$path = $path . uniqid(). '.' .$ext;
// move uploaded file from temp to uploads directory
if (move_uploaded_file($_FILES["file"]["tmp_name"],$path)) {
echo "<img src='$path' />";
$sql1= mysql_query("INSERT INTO dumimage(name,image,type,email,storename)values('$imagename','$imagedata','$imagetype','$user_check','$user_store')");
}
} else {
echo 'Invalid file!';
}
} else {
echo 'File not uploaded!';
}
} else {
echo 'Bad request!';
}
echo ($imagesize/1024).'KB';
?>
答案 0 :(得分:1)
$_FILES['file']['name']
包含已上传文件的名称,例如myImage.jpg
。换句话说,这是上传文件的用户给出的名称。
$_FILES['file']['tmp_name']
包含临时文件位置。这是PHP保存文件的地方,直到您将其移动到其他位置。例如/tmp/php/php1h4j1o
。
答案 1 :(得分:0)
您需要在上传文件后阅读文件内容,而不是之前(并且不使用$_FILES['file']['tmp_name']
)。
然后将其放在move_uploaded_file
之后,就像这样:
if (move_uploaded_file($_FILES["file"]["tmp_name"],$path)) {
$imagedata = addslashes(file_get_contents($path));
// save to DB