Upload en rename file + sql

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kevin Zegikniet

Kevin Zegikniet

09/04/2013 21:54:06
Quote Anchor link
Hallo mensen,

Ik wil een script maken, waarbij je een plaatje kunt uploaden.
Vervolgens wordt dit plaatje hernoemd, en wordt de informatie in de database gezet.
Ook wordt er een description in de database geplaatst, die op dezelfde pagina wordt ingevoerd.

Probleem is echter:
- Script wil het plaatje wel verplaatsen naar de aangegeven map, maar vervolgens niet hernoemen.
error is: " Warning: rename(H:\xampp\tmp\phpF84.tmp,23odhvd2.png) [function.rename]: No such file or directory in H:\xampp\htdocs\upload2.php on line 17 "

- De IF-statement gaat via het verplaatsen. het plaatje wordt wel verplaatst, en dus zou de IF true moetn zijn, maar gaat vervolgens FALSE uitvoeren. zegmaar.

Zie script hieronder.

Wil iemand mij helpen?

SCRIPT VERWIJDERD, ZIE ONDERAAN TOPIC VOOR HUIDIGE VERSIE
Gewijzigd op 10/04/2013 10:08:24 door Kevin Zegikniet
 
PHP hulp

PHP hulp

30/07/2021 14:53:21
 
Erwin H

Erwin H

09/04/2013 22:09:33
Quote Anchor link
Blijkbaar heb je niet goed door wat move_uploaded_file precies doet. Die functie verplaatst niet alleen het bestand, maar geeft het ook direct de naam mee die je opgeeft. De naam die het krijgt na upload is namelijk een tijdelijke (random) naam. De tweede parameter in move_uploaded_file moet dus het pad plus de nieuwe naam zijn. Als dat lukt dan heb je de rename functie niet meer nodig.
Quote:
This function checks to ensure that the file designated by filename is a valid upload file (meaning that it was uploaded via PHP's HTTP POST upload mechanism). If the file is valid, it will be moved to the filename given by destination.
 
Kevin Zegikniet

Kevin Zegikniet

10/04/2013 09:43:32
Quote Anchor link
@Erwin,
Aha! ik zal eens kijken.
dan zou $target_path dus:
"thumbnails/" . $_GET['q'] . ".png"
worden?

EDIT: $target_path veranderd in bovenstaande, (met ; erachter), en dat werkt nu prima.
Probleem echter is nu: het plaatje wordt hernoemd en verplaatst naar de map thumbnails, maar daarna komt er wel een foutmelding alsof de IF-statement false is.

MAW: hij upload en hernoemt plaatje wel, maar voert vervolgens niet bijbehorende query uit.

Ik heb de SQL query ook even veranderd.

EDIT: het werkt nu wel.
Hieronder staat het huidige script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
session_start();
IF ( (!isset($_SESSION['Username']) ) OR (!isset($_GET['q']) ) )
      {
header('Location: http://localhost/'); }

mysql_connect("localhost", "root", "") or die('Could not connect: ' . mysql_error());
mysql_select_db("youtube") or die('Could not find database: ' . mysql_error());

$name = mysql_result ( mysql_query ("SELECT Name FROM Video WHERE Path = '". $_GET['q'] ."' "), 0);
    
IF ($_POST['mode'] == TRUE)    
{
$target_path = "thumbnails/" . $_GET['q'] . ".png";

IF ( ( (move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path) )== TRUE ) )
    {

    $sql = mysql_query("UPDATE Video
                        SET Image = '"
. $_GET['q'] ."', Description = '".mysql_real_escape_string($_POST['description'])."'
                        WHERE Path = '"
. $_GET['q'] ."' ");
    
header("Location: watch.php?v=".$_GET['q']." ");
}

ELSE { $control = FALSE; }
}


include('header.php');
?>


<html>
<head>
<title>Uploaden!</title>
<link rel="icon" type="image/ico" href="/images/favicon.ico" />
</head>

<body bgcolor="#DFDFDF"><center>
<h3>Video: <?php echo $name; ?></h3>

<?php
IF ($_POST['mode'] != TRUE)
    {
ECHO "<form enctype='multipart/form-data' action='' method='post'> <table>
            <tr> <td width=450 style='text-align: right'> Wat is de beschrijving van het filmpje?</td>    <td width=450 style='text-align: left'><textarea name='description' rows=3 cols=50>Typ hier je beschrijving!</textarea></td></tr>
            <tr> <td width=450 style='text-align: right'> Selecteer hier het Plaatje!</td>                 <td width=450 style='text-align: left'><input name='uploadedfile' type='file' /></td></tr>
            <tr> <td colspan=2 style='text-align: center'> <font color='#FF0000'><h3>LET OP! Het plaatje moet <u>PNG</u> zijn, en <u>150 bij 150</u> (of in ieder geval <u>vierkant</u>) !!</h3></font></td> </tr>
            <tr> <td colspan=2 style='text-align: center'> <input type='hidden' name='mode' value='TRUE'> <input type='submit' value='Bewerk Video!' /></td></tr>
            </table> </form>"
; }

ELSE IF ( ($_POST['mode'] == TRUE) AND ($control != FALSE) )
    {
ECHO "Succesfully uploaded '". $_FILES['uploadedfile']['name'] ."' !",
            "<br>Ga naar <a href='watch.php?v=". $PATH ." '>uw filmpje!</a>"; }
ELSE IF ( ($_POST['mode'] == TRUE) AND ($control == FALSE) )
    {
ECHO "Oops, Something went wrong.<br>There was an error uploading the file, please try again!
            <br><img border='0' src='/images/uhoh.jpeg' alt='Uhoh, something went wrong!' width='650' height='250'>
            <br><a href='javascript:history.back()';>Klik hier om terug te gaan!</a>"
; }


?>


</body>
</html>
Gewijzigd op 10/04/2013 10:06:08 door Kevin Zegikniet
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.