Hallo Community,
ich will eine Seite (HTML,PHP, MySQLi, CSS - möglichst kein JS) machen, wo man sein Bild hochlädt und es dann gespeichert wird, während der Pfad in der DB landet.
Mein Code bis jetzt:
HTML:
<br /><h3><?php echo $language['reportTitle']; ?></h3>
<form class="adder" action="saveReport.php" method="POST" enctype="multipart/form-data">
<input type="hidden" name="ID" value="<?php echo $_SESSION['ID']; ?>" />
<br /><?php echo $language['reportImage']; ?><label class="upload"><p><?php echo $language['reportUpload']; ?></p><input name="image" type="file" maxlength="1000000" accept="image/*" /></label>
<br /><br /><?php echo $language['reportDescription']; ?><input name="description" type="text" />
<br /><br /><b><?php echo $language['reportInfoTitleGeneral']; ?></b><input type="submit" />
</form>
CSS: (eig. unwichtig)
.upload {
overflow: hidden;
position: absolute;
text-align: center;
font-size: small;
color: #708090;
background-color: #dddddd;
width: 213px;
height: 33px;
left: 500px;
margin-top: -10px;
border-width: thin;
border-color: #C0C0C0;
border-style: solid;
border-radius: 3px;
}
.upload:hover {
border-color: #008B8B;
}
.upload [type="file"] {
display: block;
position: absolute;
font-size: 999px;
filter: alpha(opacity=0);
opacity: 0;
right: 0;
top: 0;
}
.upload p {
margin-top: 10px;
}
PHP: (nur ein Ansatz)
<?php
include('../include/language.inc.php');
include('../include/testSession.inc.php');
include('../include/connect.inc.php');
$info[1] = $_POST['ID'];
$info[2] = $_POST['description'];
$info[3] = $_FILES['image'];
$size = sizeof($info);
for($i = 0; $i < $size; $i++) {
if(empty($info[$i])) {
$_SESSION['error'] = $language['addErrorMissingData'];
header('Location:report.php');
die($language['addErrorMissingData']);
}
}
$path = "INSERT INTO bugs VALUES (NULL,'".$info[1]."','".$info[2]."','".$info[3]."')";
$mysqli->query($path);
imagepng($im, '../include/images/'. $mysqli->insert_id . image_type_to_extension(IMAGETYPE_PNG));
?>
Ich habe schon ein bisschen gegoogelt, aber ich versteh's nicht. Gefunden hab ich:
- ob_start()
- POST uploads: http://php.net/manual/en/features.file-upload.post-method.php#features.file-upload.post-method
Am ende sollen (NULL für die ID), die UserID und die Beschreibung in der DB landen. Der Bild-Pfad soll bug['ID'].'.png' sein.
Fragen:
- Wie nehme ich das Bild entgegen? ($_POST oder $_FILES)
- Wie wandle ich das Bild in ein PNG-Format um?
- Wie speicher ich das Bild?
- Wieso spackt der "Hochladen"-Button so? (Text verschwindet nach anklicken) (Optional)
Danke, schon mal im Voraus!
-Minding
Noch eine kurze Anmerkung: Wenn man was speichert, befindet sich das nicht in der Zwischenablage. Nur wenn man etwas kopiert (Text, Foto, Video, mp3 usw.) und wo anders wieder einfügen will, befindet sich das in der Zwischenablage. Aber wahrscheinlich meintest Du das ja mit "speichern".