我正在为我的主页制作一个小脚本,但我遇到了一个问题。
我尝试上传图片,但似乎没有收到表单中的POST
数据。我做错了什么?
我已经更改了post_max_size
以及php.ini
中的所有内容。
这些是我得到的错误:
“注意:未定义的索引:图像在....”& “注意:未定义的索引: 提交....“
<form method="POST" action="/eye/sites/handling/post.php" enctype="multipart/form-data">
<div class="fileUpload">
<span><i class="fa fa-folder-o" aria-hidden="true"></i> Bild wählen</span>
<input type="file" class="upload" name="image"/>
</div>
<input type="submit" value="Upload It!" name="submit"/>
</form>
<?php session_start();
error_reporting(E_ALL);
if (isset($_SESSION["login_stat"])) {
date_default_timezone_set('Europe/Berlin');
$config = "$_SERVER[DOCUMENT_ROOT]/eye/more/config.xml";
$xml = simplexml_load_file($config);
$picWidth = $xml->pic->width;
$picHeight = $xml->pic->height;
$fulldate = date('dmYHis');
if(isset($_POST["submit"])) {
if (file_exists($_FILES['image']['tmp_name']) || is_uploaded_file($_FILES['image']['tmp_name'])) {
$typeCheck = $_FILES['image']['type'];
if ($typeCheck != "image/jpeg") {
$error = "Not a .jpg";
header('location: /eye/sites/post.php?stat=bad&error='.$error);
exit;
}
$file = $_SERVER['DOCUMENT_ROOT']."/uploads/".$fulldate.".jpg";
$type = "image/jpeg";
move_uploaded_file($_FILES['image']['tmp_name'], $file);
$file_thmb = $_SERVER['DOCUMENT_ROOT']."/uploads/!1A_thmb/".$fulldate.".jpg";
include "resize-class.php";
$resizeObj = new resize($file);
$resizeObj->resizeImage($picWidth, $picHeight, 'crop');
$resizeObj->saveImage($file_thmb, 100);
// header('location: /eye/sites/post.php?stat=good');
} else{
// header('location: /eye/sites/post.php?stat=bad&error=No File');
}
} else{
// header('location: /eye/sites/post.php?stat=bad&error=No Data');
echo $_SERVER['CONTENT_TYPE'];
echo "<br>";
echo $_FILES['image']['tmp_name'];
echo "<br>";
echo $_POST['submit'];
echo "<br>";
}
} else {
header('location: /eye/index.php?stat=in');
}
?>
编辑: 问题肯定是我的Localhost。 整个过程在我的Webspace上运行正常,但是在我的localhost上它没有用。 但是:我不再收到错误,点击提交它会转到应该保存图像的php文件,但什么也没发生。我只看到一个白页。 但就像我说的那样,它在我的网站空间上完美运行..
答案 0 :(得分:1)
如果这是在您的本地计算机上运行,请快速检查以确保您的&#34; php.ini&#34;文件配置为允许文件上传。
的php.ini
file_uploads = On
代码看起来很好。检查表单操作是否发布到正确的路径,以及我是否建议使用更简单的方法来测试文件上载功能,然后再使其更复杂。使用以下方法开始测试。
if (isset($_POST["submit"])) {
if (file_exists($_FILES['image']['tmp_name']) || is_uploaded_file($_FILES['image']['tmp_name'])) {
echo "Upload is working!";
}
}
让我们了解您的最新动态。
答案 1 :(得分:0)
也许这个一般信息对某人有帮助,因为它对我有帮助:提交的表单将只包含定义了“名称”属性的字段。 'id' 是不够的。
这个想法是 'id' 标识 DOM 中供 JavaScript 使用的元素(作为全局变量或用于 document.getElementById(ID)
),但 'name' 标识名称和值将是发送到目标(“动作”)页面。
因此,有两种不同的识别属性,以两种不同的方式使用是有道理的。