Hochladen und abrufen von videos aus der mysql-Datenbank mit php
Ich habe eine college-Projekt erstellen Sie ein virtuelles Klassenzimmer, wo Lehrer können die upload-video-vorlesungen, die die Studierenden zugreifen können.
Ich bin versucht zu retten, Weg von video in der Datenbank, speichern Sie das video in einen Ordner und dann versucht, darauf zugreifen.
Manchmal videos nicht hochgeladen. Wenn Sie versuchen, um das video zu speichern mehr als 100 mb, der Pfad ist nicht in der Lage, zum speichern in der Datenbank. Wenn die Größe des Videos kleiner ist, dann wird der Pfad gespeichert wird Datenbank.
Ich verstehe nicht, was das problem ist weil ich versuche zu speichern Weg, nicht das video.
*************** DIES IST MEIN UPLOAD-SKRIPT***********
<?php
session_start();
require("/Applications/MAMP/htdocs/conn.php");
function is_valid_type($file)
{
$valid_types = array('video/mp4', 'video/mpeg', 'video/mpg', 'audio/mpeg');
if (in_array($file['type'], $valid_types))
return 1;
return 0;
}
function showContents($array)
{
echo "<pre>";
print_r($array);
echo "</pre>";
}
$TARGET_PATH = "/Applications/MAMP/htdocs/home/";
$id = $_POST['id'];
$name = $_POST['name'];
$video_path = $_FILES['video_path'];
$TARGET_PATH .= $video_path['name'];
if ( $id == "" || $name == "" || $video_path['name'] == "" )
{
$_SESSION['error'] = "All fields are required";
header("Location: index.php");
exit;
}
if (!is_valid_type($video_path))
{
$_SESSION['error'] = "You must upload a jpeg, gif,mp4 or bmp";
header("Location: index.php");
exit;
}
if (file_exists($TARGET_PATH))
{
$_SESSION['error'] = "A file with that name already exists";
header("Location: index.php");
exit;
}
if (move_uploaded_file($video_path['tmp_name'], $TARGET_PATH))
{
$sql = "insert into video (id, name, video_path) values ('$id', '$name', '" . $video_path['name'] . "')";
$result = mysql_query($sql) or die ("Could not insert data into DB: " . mysql_error());
header("Location: http://localhost:8888/htdocs/images.php");
exit;
}
else
{
$_SESSION['error'] = "Could not upload file. Check read/write persmissions on the directory";
header("Location: index.php");
exit;
}
?>
*******************dies ist mein Skript anzeigen**************
<?php
require("/Applications/MAMP/htdocs/conn.php");
?>
<html>
<head>
<title>tutorial</title>
</head>
<body>
<div>
<?php
$sql = "select * from video";
$result = mysql_query($sql) or die ("Could not access DB: " . mysql_error());
while ($row = mysql_fetch_assoc($result))
{
$src=$row['video_path'];
$path="http://localhost:8888/home/";
$home=$path.$src;
//echo "<video src=\"$home" ."\" height=\"200\" width=\"200\"/>";
echo $row['id'] . " " . $row['name'] . "<br />";
echo "</p>";
?>
<video width="320" height="240" controls>
<source src="<?php echo $home ?>" type="video/mp4" >
</video>
<?php
}
?>
</div>
</body>
</html>
********************dies ist mein Formular script**********
<?php
session_start();
?>
<html>
<head>
<title>Dream in code tutorial</title>
<style type="text/css">
label
{
float: left;
text-align: right;
margin-right: 10px;
width: 100px;
color: black;
}
#submit
{
float: left;
margin-top: 5px;
position: relative;
left: 110px;
}
#error
{
color: red;
font-weight: bold;
font-size: 16pt;
}
</style>
</head>
<body>
<div>
<?php
if (isset($_SESSION['error']))
{
echo "<span id=\"error\"><p>" . $_SESSION['error'] . "</p></span>";
unset($_SESSION['error']);
}
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
<p>
<label>ID</label>
<input type="text" name="id" /><br />
<label>Video Name</label>
<input type="text" name="name" /><br />
<label>Upload Image</label>
<input type="file" name="video_path" /><br />
<input type="hidden" name="MAX_FILE_SIZE" value="100000000" />
<input type="submit" id="submit" value="Upload" />
</p>
</form>
</div>
- Schauen Sie in php.ini für
upload_max_filesize
stackoverflow.com/questions/2184513/... - Ich denke, das beste für Sie heraus zu überprüfen, ein video-tutorial wie: youtube.com/.... Es gibt so viele Dinge falsch mit diesem code. 1) hardcoded links 2)
mysql_*
stattmysqli_*
oderPDO
3) mitif($field == '')
stattif(empty($field))
4) mitisset($_SESSION[])
statt!empty($_SESSION)
(empty()
macht das gleiche wieisset()
aber auch überprüft, ob es leer ist oder nicht). Zu kommen auf deine Frage, so wie @Mihai gesagt schau in die php.ini für die max-upload-Größen gibt es ein paar von Ihnen, die geändert werden muss - ich m nt in der Lage zu finden, php.ini !
- Google php.ini-Lage in Ubuntu,oder was auch immer Ihr Betriebssystem,oder wenn Sie xampp suchen.
- ich m mit mac os. und ich habe gerade den upload-Wert auf 200 MB. ich bin noch kein Glück.
- Müssen Sie apache neu starten, nachdem Sie die änderungen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie die folgenden Einstellungen nach Ihren Bedürfnissen:
Vergessen Sie nicht die reload-apache (oder neu zu starten, wenn Sie möchten).
Gibt es eine Grenze für die Dateigröße für uploads und es ist wahrscheinlich 100MB in deinem Fall.
Sehen PHP die maximale upload-Datei-Größe, wie das limit zu ändern.
BEARBEITEN: ändern Sie diese Einstellungen in der php.ini, die Sie nicht ändern können Sie in Ihrem code: