我正在尝试让这段代码再次运行。即使我正在尝试访问的文件名,我做了一些不回显的内容。请帮助,我已经看了一个多小时已经没有用了:( 注意:我甚至无法在此处回显$ name
<?php
error_reporting(0);
if($_POST['submit']){
//file uploading
$name = basename($_FILES['upload']['name']); //name plus extention
print_r($_FILES['upload']);
$t_name = $_FILES['upload']['tmp_name'];
$dir = 'gallery_i';
$thumbs = 'gallery_t';
if(move_uploaded_file($t_name,$dir.'/'.$name)){
$resizeObj = new resize($dir.'/'.$name);//Resize image (options: exact, portrait, landscape, auto, crop)
$resizeObj -> resizeImage(200, 200, 'auto'); //Save image
$resizeObj -> saveImage($thumbs.'/'.$name, 100);
echo 'file upload nicely';
//file upload successfull
}
}
?>
<div class='home'>
<form method='post' action='other.php'>
Name: <input class='reg' type='text' name='prodname'/><br/><br/>
Description:<br/> <textarea class='reg' name='description' rows="4" cols="40"> </textarea> <br/><br/>
<input type='file' name='upload' />
<input type='submit' value='submit' name='submit'/>
</form>
</div>
答案 0 :(得分:7)
您需要使用多部分表单数据来上传文件:
设置表单属性:enctype="multipart/form-data"
http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2
答案 1 :(得分:1)
echo
仅在move_uploaded_file($t_name,$dir.'/'.$name)
返回true时执行。在你的情况下,它返回false。
您需要确定是否
file_exists($t_name)
)is_readable($t_name)
)is_writable($dir)
)!is_file($dir . '/' . $name)
)只有当这些条件成立时,move_uploaded_file
才能成功完成。
正如benedict_w所述,您还需要修改HTML表单,以添加值为enctype
的属性multipart/form-data
。
答案 2 :(得分:0)
启用php的错误报告/显示选项。在开发/调试的同时关闭它们就像在午夜时在悬崖边跑马拉松而戴着眼罩一样。
在你的php.ini中:
display_errors: 1
error_reporting: E_ALL
同样,你的脚本永远不会工作。要使文件上传甚至有可能成功,您需要指定
<form method="post" action="other.php" enctype="multipart/form-data">
^^^^^^^^^^^^^^^^^^^^^^^^^^^^--- missing
你假设上传成功了。至少你应该:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if ($_FILES['upload']['error'] === UPLOAD_ERR_OK) {
.... your file handling code
} else {
die("Upload failed with error code " . $_FILES['upload']['error']);
}
}