Need help with getting file name....

Discussion in 'PHP' started by ds3, Apr 9, 2006.

  1. #1
    What I need is to get the filename from userfile[0], userfile[1] and userfile[2], so that I can insert the name into sql server when the file is being uploaded.

    Web Form

    <FORM action=upload2.php method=post encType=multipart/form-data>
    <TABLE cellPadding=10 width=770 align=center border=0>
    <TBODY>
    <TR>
    <TD align=middle>
    <H1>File Upload </H1></TD></TR>
    <TR>
    <TD>
    <P> </P></TD></TR>
    <TR>
    <TD vAlign=top align=middle>
    <TABLE cellPadding=3 align=center border=0>
    <TBODY>

    <TR>
    <TD><INPUT type=file name=userfile[0]></TD></TR>
    <TR>
    <TD><INPUT type=file name=userfile[1]></TD></TR>
    <TR>
    <TD><INPUT type=file name=userfile[2]></TD></TR>
    <TR>
    <TD align=middle colSpan=2><label>Name
    <input name="name" type="text" id="name" size="30">
    </label></TD>
    </TR>
    <TR>
    <TD align=middle colSpan=2><label>Company
    <input name="company" type="text" id="company" size="27">
    </label></TD>
    </TR>
    <TR>
    <TD align=middle colSpan=2><label>Info:
    <textarea name="info" cols="30" rows="5" id="info"></textarea>
    </label></TD>
    </TR>
    <TR>
    <TD align=middle colSpan=2><INPUT type=hidden value="<?= $sid ?>"
    name=sessionid> <INPUT type=submit value="Submit"> </TD></TR></TBODY></TABLE></TD></TR>


    Processing page

    <?php
    if ($_FILES['Filedata']['name']) {
    $uploadDir = "/".date("m.d.y")."-";
    $uploadFile = $uploadDir . basename($_FILES['Filedata']['name']);
    move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile);
    }

    $db = mysql_connect("server", "user","pass");

    mysql_select_db("dbname",$db);

    $dates = date("m.d.y");

    $sql = "INSERT INTO uploads (name,company,info,file1,file2,file3,dates) VALUES ('$name','$company','$info','$userfile[0]','$userfile[1]','$userfile[2]','$dates')";

    $result = mysql_query($sql);
    ?>
     
    ds3, Apr 9, 2006 IP
  2. saidev

    saidev Well-Known Member

    Messages:
    328
    Likes Received:
    5
    Best Answers:
    0
    Trophy Points:
    140
    #2
    Can you change your input names to userFile1, userFile2, useFile3 and use
    $fileName1 = addslashes($_POST['userFile1']['name']);
    $fileName2 = addslashes($_POST['userFile2']['name']);
    $fileName3 = addslashes($_POST['userFile3']['name']);

    So your $sql = "INSERT INTO uploads (name,company,info,file1,file2,file3,dates) VALUES ('$name','$company','$info','$fileName1','$fileName2','$fileName3','$dates')";
     
    saidev, Apr 9, 2006 IP
  3. ds3

    ds3 Peon

    Messages:
    3
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #3
    Thanks for the help, but it returns empty results.

    TR>
    <TD><INPUT type=file name=userFile1></TD></TR>
    <TR>
    <TD><INPUT type=file name=userFile2></TD></TR>
    <TR>
    <TD><INPUT type=file name=userFile3></TD></TR>


    $fileName1 = addslashes($_POST['userFile1']['name']);
    $fileName2 = addslashes($_POST['userFile2']['name']);
    $fileName3 = addslashes($_POST['userFile3']['name']);


    $sql = "INSERT INTO uploads (name,company,info,file1,file2,file3,dates) VALUES ('$name','$company','$info','$fileName1','$fileName2','$fileName3','$dates')";
     
    ds3, Apr 9, 2006 IP
  4. penagate

    penagate Guest

    Messages:
    277
    Likes Received:
    17
    Best Answers:
    0
    Trophy Points:
    0
    #4
    Hi

    First thing is that you should use quotes around attribute values - that makes it valid code and more compatible, plus you can use more characters inside the values.

    So your code should be:
    <input type="file" name="userFile1">
    HTML:
    Next thing is that PHP handles file uploads specially, to make it easy for you. Have a read of this article in the manual:
    http://php.net/features.file-upload

    You must follow all the notes in there, in order for file uploads to be enabled.

    Hope that helps :)

    - P
     
    penagate, Apr 9, 2006 IP
  5. ds3

    ds3 Peon

    Messages:
    3
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #5
    The upload works fine it is just the passing the file name to the sql insert that isnt working.
     
    ds3, Apr 9, 2006 IP
  6. penagate

    penagate Guest

    Messages:
    277
    Likes Received:
    17
    Best Answers:
    0
    Trophy Points:
    0
    #6
    Ah,

    use the $_FILES superglobal array, which holds the information about the uploaded files.

    E.g.
    $fileName = $_FILES['userFile1']['name'];
    PHP:
    - P
     
    penagate, Apr 9, 2006 IP