Webbserverprogrammering 1

Show sourcecode

The following files exists in this folder. Click to view.

Webserver1/Ovningar/Slutprojekt/

.env
DEBUG/
Media/
account.js
account.php
callback_log.txt
change_account_details.php
composer.json
composer.lock
forgot_pass.php
forgot_pass_new_pass.php
header.php
index.php
login.php
mediaplayer.php
node_modules/
package-lock.json
package.json
signup.php
style.css
upload.js
upload_callback.php
upload_callback_simulated.php
upload_chunk.php
upload_errors.log
upload_form.php
upload_handler.php
upload_success.log
vendor/
verify_file.php
verifypage.php

upload_form.php

92 lines UTF-8 Windows (CRLF)
<?php
session_start
();

$user_id $_SESSION["userId"] ?? null;

if (!
$user_id) {
  
header("Location:login.php");
}
?>

<!DOCTYPE html>
<html lang="sv">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Ladda upp</title>
  <link rel="stylesheet" href="style.css">
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head>
<body>
  <?php include("header.php"?>
    <form action="upload_handler.php" method="post" id="upload-form" enctype="multipart/form-data">
    <div id="video-upload">
      <h1 class="text-center">Ladda upp video</h1>
      <label for="video-input" id="drop-zone" class="text-center">
        <div id="pre-upload-info">
          Klicka för att ladda upp en videofil <br>
          <span style="font-size: small;">(Stora videor laddas upp i mindre chunkar för serverkompatibilitet, max 200MB)</span>
        </div>
        <label for="upload-progress" id="progress-label" style="display: none;">
          <span id="info-span">Laddar upp fil ...</span>
          <progress id="upload-progress" value=0></progress>
          <span id="progress-pct">0.0%</span>
          <p id="size-warning-message" hidden>Oj, vad stor video! För stora (och långa) videos kan komprimeringen gå väldigt långsamt! 
          Istället rekommenderas att du komprimerar dem innan du laddar upp dem här, vilket du kan göra <a href="https://www.freeconvert.com/video-compressor" target="_blank">med denna länk</a>.
        (Komprimering här kan lagga browsern, refresha sidan för att avbryta)</p>
        </label>
        <input type="file" name="video-input" id="video-input" accept="video/*">
        <input type="hidden" name="video_temp_id" id="video-temp-id" value="">
      </label>
    </div>
    <div id="video-metadata">
      <fieldset>
        <legend><h2>Video metadata</h2></legend>
        <div class="row">
          <label for="video-title">Titel:</label>
          <input required maxlength="50" name="video-title" id="video-title" type="text" placeholder="Titel på din film/avsnitt">
        </div>
        <div class="row">
          <label for="video-description">Beskrivning:</label>
          <textarea required maxlength="300" name="video-description" id="video-description" rows="3" cols="30" placeholder="Beskrivning av din film/avsnitt"></textarea>
        </div>
        <div class="row">
          <div><label for="thumb-input">Tumnagel:<span style="font-size: small;">(Max: 2 MB)</span></label></div>
          <input required type="file" name="thumb-input" id="thumb-input" accept="image/*">
        </div>
        <!-- <div class="row">
          <label for="is-series">Video är avsnitt i serie?:</label>
          <input type="checkbox" name="is-series" id="is-series">
        </div>
        <div class="row series-info hidden" id="series-select">
          <label for="series">Serie:</label>
          <search>
            <input type="search">
            <div id="searchResults">

            </div>
          </search>
        </div>
        <div class="row series-info hidden" id="new-series-name-wrapper">
          <label for="new-series-name">Serienamn:</label>
          <input type="text" name="new-series-name" id="new-series-name">
        </div>
        <div class="row series-info hidden" id="season-nr-wrapper">
          <label for="season-nr">Säsongnr:</label>
          <select name="season-nr" id="season-nr">
          -->
            <!-- Skapa opt för varje säsong i DB -->
          <!--
          </select>
        </div>
        <div class="row series-info hidden" id="episode-nr-wrapper">
          <label for="episode-nr">Serienamn:</label>
          <input type="text" name="episode-nr" id="episode-nr">
        </div> -->
      </fieldset>
      <input type="submit" value="Ladda upp">
    </div>
  </form>
  <script src="./upload.js" type="module" defer></script>
</body>
</html>