我在表单中添加了标记enctype="multipart/form-data"
后,我的文件上传脚本将不再有效。
这是完整的表格:
echo '
<form action="/group/'.$_GET['id'].'/add_content" method="POST" enctype="multipart/form-data" class="form-horizontal">
<fieldset>
<legend>Beitrag hinzufügen</legend>
<div class="form-group">
<label for="inputPassword" class="col-lg-2 control-label">Inhalt</label>
<div class="col-lg-10">
<div class="well">
<textarea class="form-control" required="required" name="content_content" placeholder="Schreibe den Inhalt deines Beitrages hier hin..." rows="15"></textarea>
</div>
</div>
</div>
<div class="form-group">
<label for="inputPassword" class="col-lg-2 control-label">Bilder</label>
<div class="col-lg-10">
<div style="margin-top: 6px;"><b>Anhänge sind Freiwillig. Für diese Anhänge gelten besondere Bestimmungen, diese kannst du in den Nutzungsbestimmungen nachlesen!</b><br>
<b>Es sind folgende Dateiendungen erlaubt: PNG, GIF, JPG, BMP</b><br><br></div>
<!-- <input type="file" name="content_pictures[0]" accept="image/*" /><br>
<input type="file" name="content_pictures[1]" accept="image/*" /> -->
<input readonly="" class="form-control floating-label" placeholder="Durchsuchen..." type="text">
<input id="inputFile" name="content_pictures[0]" accept="image/*" type="file">
<input readonly="" class="form-control floating-label" placeholder="Durchsuchen..." type="text">
<input id="inputFile" name="content_pictures[1]" accept="image/*" type="file">
</div>
</div>
<div class="form-group">
<label for="inputPassword" class="col-lg-2 control-label">Video</label>
<div class="col-lg-10">
<div style="margin-top: 6px;"><b>Anhänge sind Freiwillig. Für diese Anhänge gelten besondere Bestimmungen, diese kannst du in den Nutzungsbestimmungen nachlesen!</b><br>
<b>Es sind folgende Dateiendungen erlaubt: AVI, MP4, WMV, FLV</b><br><br></div>
<!-- <input type="file" name="content_video[0]" accept="video/*" /> -->
<input readonly="" class="form-control floating-label" placeholder="Durchsuchen..." type="text">
<input id="inputFile" name="content_video[0]" accept="video/*" type="file">
</div>
</div>
<div class="form-group">
<div class="col-lg-10 col-lg-offset-2">
<a class="btn btn-danger" href="/group/'.$_GET['id'].'/members">Abbrechen</a>
<input type="submit" name="submitt" value="Beitrag hinzufügen" class="btn btn-success" style="background-color: #00CC66;">
</div>
</div>
</fieldset>
</form>
';
这是相应的PHP脚本:
if(isset($_POST['submitt'])) {
$content = $_POST['content_content'];
$group_id = $_GET['id'];
$user_id = $aaa['id'];
$user_name = $aaa['username'];
$query = "INSERT INTO groups_content (group_id, autor_id, autor_name, content, date) VALUES (:group_id, :autor_id, :autor_name, :content, :date)";
$smt = $db->prepare($query);
$smt->execute(array(':group_id' => $group_id, ':autor_id' => $user_id, ':autor_name' => $user_name, ':content' => $content, ':date' => time()));
$query = "SELECT LAST_INSERT_ID(id) AS id FROM groups_content WHERE autor_id = :autor_id ORDER BY id DESC";
$smt2 = $db->prepare($query);
$smt2->execute(array(':autor_id' => $user_id));
$lastid = $smt2->fetch(PDO::FETCH_ASSOC);
foreach ($_FILES["content_pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["content_pictures"]["tmp_name"][$key];
$name = $_FILES["content_pictures"]["name"][$key];
$file_namerev = strrev($name);
$parts = explode(".",$file_namerev);
$endung = strrev($parts[0]);
if($endung == "png" || $endung == "gif" || $endung == "jpg" || $endung == "bmp" || $endung == "PNG" || $endung == "GIF" || $endung == "JPG" || $endung == "BMP") {
$file = "$randomstring.$endung";
$query = "INSERT INTO groups_content_media (content_id, media_art, media_file) VALUES (:id, `1`, :file)";
$smt3 = $db->prepare($query);
$smt3->execute(array(':id' => $lastid['id'], ':file' => $file));
move_uploaded_file($tmp_name, "upload_group_content_media_image/$randomstring.$endung");
} else {
echo '<div class="alert alert-danger">Die Bilder wurden aufgrund einer unerlaubten Dateiendung nicht hochgeladen! Der Rest wurde gespeichert!</div>';
}
}
}
foreach ($_FILES["content_video"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["content_video"]["tmp_name"][$key];
$name = $_FILES["content_video"]["name"][$key];
$file_namerev = strrev($name);
$parts = explode(".",$file_namerev);
$endung = strrev($parts[0]);
if($endung == "avi" || $endung == "mp4" || $endung == "wmv" || $endung == "flv" || $endung == "AVI" || $endung == "MP4" || $endung == "WMV" || $endung == "FLV") {
$file = "$randomstring.$endung";
$query = "INSERT INTO groups_content_media (content_id, media_art, media_file) VALUES (:id, `2`, :file)";
$smt4 = $db->prepare($query);
$smt4->execute(array(':id' => $lastid, ':file' => $file));
move_uploaded_file($tmp_name, "upload_group_content_media_image/$randomstring.$endung");
} else {
echo '<div class="alert alert-danger">Das Video wurde aufgrund einer unerlaubten Dateiendung nicht hochgeladen! Der Rest wurde gespeichert!</div>';
}
}
}
echo '<div class="alert alert-success">Ihr Beitrag wurde erfolgreich gespeichert. Sie werden in 3 Sekunden weitergeleitet.</div>';
echo '<meta http-equiv="refresh" content="3; url=/group/'.$_GET['id'].'/home">';
}