Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][ASP][.NET]Upload plików
Forum PHP.pl > Forum > Przedszkole
Eagle
Witam

Potrzebuje wysłać za pomocą "specjalnego" programu plik na serwer. Wykorzystuje on do tego technologię .NET (która jak wiadomo ma tylko wsparcie dla ASP).

Plik wysyłam przez "POST"
tablica $_FILE wygląda tak:
Kod
Array
(
    [file] => Array
        (
            [name] => wolne.jpg
            [type] => application/octet-stream
            [tmp_name] => C:/ścieżka/temp/file-uploads\php257.tmp
            [error] => 0
            [size] => 146064
        )
)


Taki jest przykład od MS
Kod
<%@ Import Namespace="System"%>
<%@ Import Namespace="System.IO"%>
<%@ Import Namespace="System.Net"%>
<%@ Import NameSpace="System.Web"%>

<script language="VB" runat=server>
    Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

        Dim f As String
        Dim file
        For Each f In Request.Files.AllKeys
            file = Request.Files(f)
            file.SaveAs("c:\inetpub\test\UploadedFiles\" & file.FileName)
        Next f

    End Sub

</Script>
<html>
<body>
<p> Upload complete. </p>
</body>
</html>


A tak wygląda mój* kod w php
  1. <?php
  2. if( is_uploaded_file( $_FILES['tmp_name'] ) )
  3. {
  4. $strUploadDir = 'C:ścieżka' . $_FILES['name'];
  5. if( move_uploaded_file( $_FILES['tmp_name'], $strUploadDir ) )
  6. {
  7. echo 'Plik został pomyślnie uploadowany! <br />';
  8. }
  9. else
  10. {
  11. echo 'Upload pliku nie powiódł się!';
  12. }
  13. echo 'Dodatkowe informacje o uploadowanym pliku: <pre>' . print_r( $_FILES, true ) . '</pre>';
  14. }
  15. else
  16. {
  17. echo 'Wystąpił błąd podczas wysyłania pliku na serwer!;
  18. }
  19. ?>


Po przesłaniu pliku jest wyświetlany komunikat "Wystąpił błąd podczas wysyłania pliku na serwer!"

* znalezione gdzieś w google

Pozdrawiam
Ociu
Zajrzałeś chociaż do manuala ?

Cytat
Do prawidłowego działania, funkcja is_uploaded_file() wymaga argumentu jak $_FILES['userfile']['tmp_name'], - nazwa przysyłanego pliku na maszynie klienta $_FILES['userfile']['name'] nie zadziała.


Poza tym, nie powinno być czasem !is_uploaded_file ?
marcio
  1. <?php
  2. $_FILES['tmp_name'];
  3. ?>

Chyba zle to masz brakuje ci tez tablicy z forma czyli chyba tak powinno byc
  1. <?php
  2. $_FILES['tmp_name']['nazwa_zmiennej_z_forma'];
  3. ?>

Tak albo przed nazwa srodowiskowa
Eagle
Mam rozwiązanie... (znalezione na jakiejś stronie)

Może się komuś przyda

  1. <?php
  2. $uploaddir = ''; // Relative Upload Location of data file
  3.  
  4. if (is_uploaded_file($_FILES['file']['tmp_name']))
  5. {
  6. $uploadfile = $uploaddir . basename($_FILES['file']['name']);
  7. echo "File ". $_FILES['file']['name'] ." uploaded successfully. ";
  8. if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile))
  9. {
  10. echo "File is valid, and was successfully moved. ";
  11. }
  12. else
  13. print_r($_FILES);
  14. }
  15. else
  16. {
  17. echo "Upload Failed!!!";
  18. print_r($_FILES);
  19. }
  20. ?>


Musze robić sobie jakieś przerwy od kompa bo nie czytam ze zrozumieniem ;]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.