WebHU - Programozási kérdések és válaszok

Hiba a feltöltött php fájl áthelyezésekor

Megpróbálok képbetöltést hozzáadni a webhelyemhez, de hibát ad. Íme a php működésének eredménye:

C:\Users\Admin\AppData\Local\Temp\php9664.tmp Figyelmeztetés: move_uploaded_file(/img/collection/usbwebserver.exe): nem sikerült megnyitni az adatfolyamot: Nincs ilyen fájl vagy könyvtár a D:\Home\Volodya\Projects\ mappában Web\CollectionSite\site\php\collection.php a 26. sorban

Figyelmeztetés: move_uploaded_file(): A 'C:\Users\Admin\AppData\Local\Temp\php9664.tmp' fájl nem helyezhető át a '/img/collection/usbwebserver.exe' mappába a D:\Home\Volodya\Projects\Web\ mappában. CollectionSite\site\php\collection.php a 26. sorban

Ő az én kódom: egy űrlap:

echo ('
    <form action="collection.php" method="post" enctype="multipart/form-data">
        <legend>Add coin</legend>
        <select name="countryId">
');     

if(mysqli_num_rows($resultCountry)>0) {
    while($row=mysqli_fetch_assoc($resultCountry)) {
        echo("<option value=".$row['country_id'].">".$row['country_name']."</option>");
    }
}

echo('
        </select>
        <select name="curencyId">
');

if(mysqli_num_rows($resultCurency)>0) {
    while($row=mysqli_fetch_assoc($resultCurency)) {
        echo("
            <option value=".$row['curency_id'].">".$row['curency_name']."</option>
        ");
    }
}

echo('
    </select>
    <select name="metalId">
');

if(mysqli_num_rows($resultMetal)>0) {
    while($row=mysqli_fetch_assoc($resultMetal)) {
        echo("
            <option value=".$row['metal_id'].">".$row['metal_name']."</option>
        ");
    }
}

echo('
        </select>
        <select name="nominalId">
');

if(mysqli_num_rows($resultNominal)>0) {
    while($row=mysqli_fetch_assoc($resultNominal)) {
        echo("
            <option value=".$row['nominal_id'].">".$row['nominal_name']."</option>
        ");
    }
}

echo('
        </select>
        <input type="date" name="dateCreation">
        <input type="number" name="weight">
        <input type="number" name="mintage">
        <input type="file" name="img">
        <input type="hidden" name="type" value="addcoin">
        <input type="submit" value="Add coin">
    </form>               
');

És a megküzdő fájlok kódja:

echo($_FILES['img']['tmp_name']);
move_uploaded_file($_FILES['img']['tmp_name'], "/img/collection/".basename($_FILES['img']['name']));
28.01.2018

Válaszok:


1

A lemezképeket a lemez gyökérkönyvtárában próbálja tárolni.

Próbálja meg a fájl elérési útját __dir__ vagy $_SERVER['DOCUMENT_ROOT'] előtaggal rögzíteni.

Ex:

move_uploaded_file($_FILES['img']['tmp_name'], 
    __dir__ . "/img/collection/".basename($_FILES['img']['name'])) ;

SZERKESZTÉS az alábbi megjegyzések után:

00000000  63 6f e2 80 8c e2 80 8b  6c 6c 65 63 74 69 6f 6e  |co......llection|
00000010  20 0a 63 6f e2 80 8c e2  80 8c e2 80 8b e2 80 8b  | .co............|
00000020  6c 6c 65 63 74 69 6f 6e                           |llection|
28.01.2018
  • Megcsináltam, de most a következőt adja vissza: Nem sikerült áthelyezni a 'C:\Users\Admin\AppData\Local\Temp\phpCBCD.tmp' fájlt a 'D:\Home\Volodya\Projects\Web\CollectionSite\site\php\img\ mappába. collection\usbwebserver.exe' 28.01.2018
  • @Poseydon42 Milyen útvonalon szeretné tárolni a feltöltött fájlokat? Létezik a mappa? 28.01.2018
  • D:\Home\Volodya\Projects\Web\CollectionSite\site\php\img\co‌​llection\ ez az elérési út létezik. 28.01.2018
  • @Poseydon42 : Úgy tűnik, co‌​llection és co‌‌​​llection nem ugyanaz. Ha a fenti két elérési utat egy szövegszerkesztőben másolja, az első 12 karakter hosszú, a második pedig 14 karakteres. Talán egy speciális karakter... Lásd a frissített választ. 28.01.2018
  • Megpróbáltam átmásolni egy másik könyvtárba, most nincs hiba, de a célkönyvtárban nincs fájl. 28.01.2018
  • @Poseydon42 Megnézted, hogy move_uploaded_file() mit ad vissza? 28.01.2018
  • @Poseydon42 Azt javaslom, hogy ellenőrizze az Apache-naplókat, a PHP-naplókat, a mappák jogait, és adja hozzá a var_dump()-t mindenhová, ahol csak tudja. Végül próbáljon meg egy másik kérdést feltenni a problémával kapcsolatban. Nem tudok többet tenni ezekben a megjegyzésekben. Kérjük, vegye figyelembe, hogy a kezdeti kérdés megoldódott, vagy segít Önnek. Nagyon köszönöm. 28.01.2018
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..