Avatar billede tobrukDk Novice
02. oktober 2012 - 01:41 Der er 8 kommentarer og
2 løsninger

slet og upload samme tid.

Hej

det er sådan at jeg arbejder lige nu på at komme væk til en ide med at når bruger skal upload et profilbillede så skal det gammel blive slette.. hmm

Jeg arbejder mysqli og php.

Jeg har tænkt på at den første skal slette og der efter skal den upload men den skal kun upload hvis den har slette det gammel billede.

men jeg er utrolig usikker på hvordan jeg skal bygge det op. så det vil være super hvis du komme med en ide til hvordan jeg få løse den her opgave.

Det vil nok hjælp lidt på hvis jeg høret på hvad du sagde og menet omkring det her. :) fordi lige nu er jeg totalt lose omkring hvordan jeg skal bygge den op på overhovedet.. hmm
Avatar billede arne_v Ekspert
02. oktober 2012 - 02:59 #1
du uploader og det script som haandterer uploade sletter inden det gemmer

hvad er problemet?
Avatar billede michael_stim Ekspert
02. oktober 2012 - 09:55 #2
Som Arne siger, så kan jeg heller ikke se noget problem.

Du klikker på upload -> Du checker om der allerede eksisterer et billede (du har formodentlig alle data i database) -> hvis ja, slet/unlink -> upload billede.
Avatar billede tobrukDk Novice
02. oktober 2012 - 15:15 #3
#1
Jeg er bare usikker på hvordan jeg skulle gøre det men jeg prøve lige at lave en model så kan i lige ret på den eller ligne hvis i mener noget andet?

#2 Ja alt er i database. :)


er det rigtigt forstå ?

så det skal være sådan at den
checker første om der er noget og hvis der er noget så skal den første slette den og der efter upload den ny file?
Avatar billede tobrukDk Novice
02. oktober 2012 - 15:56 #4

<?php
        if ($stmt = $mysqli->prepare('SELECT `profilbillede` FROM `bruger` WHERE `id` = ?')) {
        $stmt->bind_param('i', $id);
        $id = $_SESSION["id"];

        $stmt->execute();
        $stmt->store_result();
        $stmt->bind_result($profilbillede);

        /* Hent rækker og udskriv data */
        while ($stmt->fetch()) {
           
        //kan ikke rigtigt komme videre her fra
       
        }
        $stmt->close();
        } else {
            /* Der er opstået en fejl */
            echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
        }
        ?>


så langt er jeg kommet og kan bare ikke komme videre.. det vil være super hvis du / i komme med en ide til hvad jeg skulle gøre nu?
Avatar billede tobrukDk Novice
02. oktober 2012 - 16:24 #5

while ($stmt->fetch()) {
       
                if($profilbillede)
                {
                    echo "Du har et profilbillede!";   
                }
                if(!$profilbillede)
                {
                    echo "Du har intet profilbillede";   
                }
       
        }


Komme til sådan noget i den her still
Avatar billede tobrukDk Novice
02. oktober 2012 - 16:29 #6
Nej det går ikke...
Avatar billede arne_v Ekspert
03. oktober 2012 - 03:50 #7
if ($stmt->fetch()) {
    // den var der
} else {
    // den var der ikke
)
Avatar billede tobrukDk Novice
04. oktober 2012 - 14:37 #8

<?php
include ("inc/db/db.php");
session_start();
if ($stmt = $mysqli->prepare('SELECT `profilbillede` FROM `bruger` WHERE `id` = ?')) {
$stmt->bind_param('i', $id);
$id = $_SESSION["id"];

$stmt->execute();
$stmt->store_result();
$stmt->bind_result($profilbillede);

$UploadDir = "profil-img/"; //ligger i toppen af documentet, evt som en define

if($stmt->fetch()){
    $tmpfile = $UploadDir."".$profilbillede;   
    if(file_exists($tmpfile)) {       
        unlink($tmpfile);   
    }
    $tmpfile = $UploadDir."lille/".$profilbillede;   
    if(file_exists($tmpfile)) {       
        unlink($tmpfile);   
    }
    $tmpfile = $UploadDir."store/".$profilbillede;   
    if(file_exists($tmpfile)) {   
        unlink($tmpfile);   
    }   
}
$stmt->close();
} else {
    /* Der er opstået en fejl */
    echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
}
include "inc/img/class.upload.php";
$handle = new Upload($_FILES["filename"]);

if($handle->uploaded)
{
//lidt mere store billeder
$handle->image_resize = true;
$handle->image_ratio_y = true;
$handle->image_x = 220;
$handle->Process("profil-img/store");

//til profil billede lign..
$handle->image_resize = true;
$handle->image_ratio_crop = true;
$handle->image_y = 115;
$handle->image_x = 100;
$handle->Process("profil-img");

//til profil billede lign..
$handle->image_resize = true;
$handle->image_ratio_crop = true;
$handle->image_y = 75;
$handle->image_x = 75;
$handle->Process("profil-img/lille");
$pb = $handle->file_dst_name;

}
if ($stmt_u = $mysqli->prepare('UPDATE `bruger` SET `profilbillede`=?, `profilbillede_godkendt`=? WHERE `id`=?')) {
        /* Bind parametre */
        $stmt_u->bind_param('ssi', $profilbillede, $profilbillede_godkendt, $id);

        /* Sæt værdier på parametrene */
        $profilbillede = $pb;
        $profilbillede_godkendt = '0';
        $id = $_SESSION["id"];

        /* Eksekver forespørgslen */
        $stmt_u->execute();

        /* Luk statement */
        $stmt_u->close();
       
        header('Location: http://www......dk/indstillinger-bruger/');

    } else {
        /* Der er opstået en fejl */
        echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
    }
?>


Fik hjælp af en anden bruger :)


#arne_v lige et svar så kan vi del halvdel sammen :)
Avatar billede arne_v Ekspert
04. oktober 2012 - 16:48 #9
ok
Avatar billede tobrukDk Novice
04. oktober 2012 - 20:59 #10
svar også lige
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

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