Avatar billede silmarillion Juniormester
14. januar 2009 - 21:07 Der er 11 kommentarer og
1 løsning

Embedded video

Hej Eksperter.

Jeg har et script, hvor jeg kan uploade filer til en mappe på serveren, som derefter viser filerne som en liste, hvor man kan klikke på filnavnet, man kan derefter se/downloade filen i et nyt vindue. Er der nogle der kan hjælpe med at lave et script, så filerne, i dette tilfælde video og audio, bliver vist som emdedded video eller lyd.

Det script jeg har til at uploade/slette filer med ser således ud:

<body>

<?php
//vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
// You may change maxsize, and allowable upload file types.
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//Mmaximum file size. You may increase or decrease.
$MAX_SIZE = 41943040;

//Allowable file ext. names. you may add more extension names.
$FILE_EXTS = array('.Wmv','.mp3');

//Allow file delete? no, if only allow upload only
$DELETABLE = true;


//vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
// Do not touch the below if you are not confident.
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/************************************************************
* Setup variables
************************************************************/
$site_name = $_SERVER['HTTP_HOST'];
$url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
$url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

$upload_dir = "files/";
$upload_url = $url_dir."/files/";
$message ="";

/************************************************************
* Create Upload Directory
************************************************************/
if (!is_dir("files")) {
if (!mkdir($upload_dir))
die ("upload_files directory doesn't exist and creation failed");
if (!chmod($upload_dir,0755))
die ("change permission to 755 failed.");
}

/************************************************************
* Process User's Request
************************************************************/
if ($_REQUEST[del] && $DELETABLE) {
$resource = fopen("log.txt","a");
fwrite($resource,date("Ymd h:i:s")."DELETE - $_SERVER[REMOTE_ADDR]"."$_REQUEST[del]\n");
fclose($resource);

if (strpos($_REQUEST[del],"/.")>0); //possible hacking
else if (strpos($_REQUEST[del],$upload_dir) === false); //possible hacking
else if (substr($_REQUEST[del],0,6)==$upload_dir) {
unlink($_REQUEST[del]);
print "<script>window.location.href='$url_this?message=deleted successfully'</script>";
}
}
else if ($_FILES['userfile']) {
$resource = fopen("log.txt","a");
fwrite($resource,date("Ymd h:i:s")."UPLOAD - $_SERVER[REMOTE_ADDR]"
.$_FILES['userfile']['name']." "
.$_FILES['userfile']['type']."\n");
fclose($resource);

$file_type = $_FILES['userfile']['type'];
$file_name = $_FILES['userfile']['name'];
$file_ext = strtolower(substr($file_name,strrpos($file_name,".")));

//File Size Check
if ( $_FILES['userfile']['size'] > $MAX_SIZE)
$message = "The file size is over 40MB.";
//File Extension Check
else if (!in_array($file_ext, $FILE_EXTS))
$message = "Sorry, $file_name($file_type) is not allowed to be uploaded.";
else
$message = do_upload($upload_dir, $upload_url);

print "<script>window.location.href='$url_this?message=$message'</script>";
}
else if (!$_FILES['userfile']);
else
$message = "Invalid File Specified.";

/************************************************************
* List Files
************************************************************/
$handle=opendir($upload_dir);
$filelist = "";
while ($file = readdir($handle)) {
if(!is_dir($file) && !is_link($file)) {
$filelist .= "<a href='$upload_dir$file'>".$file."</a>";
if ($DELETABLE)
$filelist .= " <a href='?del=$upload_dir".urlencode($file)."' title='delete'>x</a>";
$filelist .= "<sub><small><small><font color=grey> ".date("d-m H:i", filemtime($upload_dir.$file))
."</font></small></small></sub>";
$filelist .="<br>";
}
}

function do_upload($upload_dir, $upload_url) {

$temp_name = $_FILES['userfile']['tmp_name'];
$file_name = $_FILES['userfile']['name'];
$file_name = str_replace("\\","",$file_name);
$file_name = str_replace("'","",$file_name);
$file_path = $upload_dir.$file_name;

//File Name Check
if ( $file_name =="") {
$message = "Invalid File Name Specified";
return $message;
}

$result = move_uploaded_file($temp_name, $file_path);
if (!chmod($file_path,0777))
$message = "change permission to 777 failed.";
else
$message = ($result)?"$file_name uploaded successfully." :
"Somthing is wrong with uploading a file.";
return $message;
}

?>

<center>
<font color=red><?=$_REQUEST[message]?></font>
<br>
<form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">
Upload File <input type="file" id="userfile" name="userfile">
<input type="submit" name="upload" value="Upload">
</form>

<br><b>My Files</b>
<hr width=70%>
<?=$filelist?>
<hr width=70%>
</sup></small>
</center>

</body>
Avatar billede g1mzee Nybegynder
14. januar 2009 - 21:13 #1
Det er vel en slags player du skal have fat i?
Avatar billede jakobdo Ekspert
14. januar 2009 - 21:23 #2
Video og lyd kan du jo gengive med media player embedded, hvis vi snakker rene Windows brugere.

http://www.mioplanet.com/rsc/embed_mediaplayer.htm
Avatar billede silmarillion Juniormester
14. januar 2009 - 21:24 #3
Nej, playeren er bare windowsmediaplayer, det finder computeren selv ud af, det kræver bare at windowsmediaplayer er installeret på brugerens computer.

Det jeg skal bruge er et script der læser indholdet af mappen, hvor filerne bliver uploadet, og derefter viser indholdet som en embeddet video.

som her.

http://www.tutvid.com/tutorials/dreamweaver/tutorials/simpleThumbPhotoGallery.php

bare med alle filerne i mappen.
Avatar billede jakobdo Ekspert
14. januar 2009 - 21:34 #4
Så tror jeg ikke jeg ved hvad du søger ?
Er det EN player som kan afspille filerne en for en ?
Eller er det en player ved hver fil ?
Avatar billede silmarillion Juniormester
14. januar 2009 - 21:49 #5
Det er en player for hver fil som her:

http://www.opretforbindelse.dk/upload/Test.php

Men hvor det er et php script der indsætter filer som embedded så brugeren ikke skal gøre det manuelt.

Hvis du har et forslag til en bedre måde at gøre det på, er jeg åben for forslag.
Avatar billede olebole Juniormester
14. januar 2009 - 21:57 #6
<ole>

Ja, hvis du er ligeglad med at skrive invalid kode, kan du jo selvfølgelig godt bruge et embed-tag. Ellers bør du nok finde en player, skrevet i Flash.

/mvh
</bole>
Avatar billede olebole Juniormester
14. januar 2009 - 22:00 #7
- og nej, dine embed-tags implementerer ikke en Windows MediaPlayer i min IE/XP ... men derimod en QuickTime Player.

Endnu en god grund til at bruge en player i Flash: Du får styr på, hvad der sker  ;o)
Avatar billede silmarillion Juniormester
14. januar 2009 - 22:28 #8
Hej Ole,

Jeg er opmærksom på at det er Quicktime der er brugt i eksemplet, men jeg har ikke andet liggende. I den endelige udgave havde jeg dog tænkt det skulle være wmv.

Hvis man kan lave det med en flash player er det også ok, hvis det stadig kan laves automatisk.

Det kunne måske også laves sådan, at når man klikker på linket

http://www.opretforbindelse.dk/upload/Test2.php

bliver der vist som en embedded video som her.

http://www.opretforbindelse.dk/upload/Test1.php

Men så ville jeg gerne have fil endelsen fjernet i det der bliver skrevet i listen.
Avatar billede olebole Juniormester
14. januar 2009 - 23:24 #9
Så gør du vel bare det, at du skriver:
    <a href="fil.php?movie=blabla.wma">TEST</a>

- og så sætter $_GET["movie"] ind, hvor kilden skal stå i dit player-tag
Avatar billede silmarillion Juniormester
26. februar 2009 - 00:48 #10
lukkes
Avatar billede olebole Juniormester
26. februar 2009 - 02:39 #11
øhhh ... nå!
Avatar billede jakobdo Ekspert
26. februar 2009 - 05:22 #12
Hvad blev din løsning ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester