Wo kann man Dateien hochladen die nur für bestimmte Personen zugänglich sein sollen?

2 Antworten

Zeitlich begrenzt kann man das mit www.yousendit.com machen, dort bleibt eine Datei bis zu 7 Tage downloadbar, die Links zu der Datei kann man entweder gleich beim Upload eintragen (dann bekommen diejenigen gleich eine Email inkl. Link) oder man verteilt nach erfolgreichem Upload die Links per Email. Das Upload Limit für einen kostenlosen Account sind 100 MB.

PHP Bild hochladen und abspeichern

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

...zur Frage

Was möchtest Du wissen?