jQtouch/Contao Image Upload with PHP


jQtouch/Contao Image Upload with PHP

我正在尝试将带有表单的图像上传到我的网络服务器,但 $_FILES['file'] 找不到我的文件。

它仅适用于手机,我使用 Contao 作为 CMS。如果我使用不是由Contao或jQtouch生成的新页面,则可以上传服务器上的文件。代码下来是在我的CMS中实现的。我认为jQuery或Ajax存在问题。有没有办法让它工作?

.HTML:

<form action="/send_mail_php.php" method="post" enctype="multipart/form-data">
    <ul class="edit rounded">
        <li class="arrow">
            <select id="Anrede">
                    <option value="Frau">Frau</option>
                    <option value="Herr">Herr</option>
            </select>
        </li>
        <li>
            <input type="text" name="Firma" placeholder="Firma*" id="firma" data-emoji_font="true" style="font-family: 'Avenir Next', Avenir, 'Segoe UI Emoji', 'Segoe UI Symbol', Symbola, EmojiSymbols !important;">
        </li>
        <li>
            <input type="text" name="Abteilung" placeholder="Abteilung*" id="abteilung" data-emoji_font="true" style="font-family: 'Avenir Next', Avenir, 'Segoe UI Emoji', 'Segoe UI Symbol', Symbola, EmojiSymbols !important;"/>
        </li>
        <li>
            <input type="text" name="Vorname" placeholder="Vorname*" id="vorname" data-emoji_font="true" style="font-family: 'Avenir Next', Avenir, 'Segoe UI Emoji', 'Segoe UI Symbol', Symbola, EmojiSymbols !important;"/>
            </li>
        <li>
            <input type="text" name="Nachname" placeholder="Nachname*" id="nachname" data-emoji_font="true" style="font-family: 'Avenir Next', Avenir, 'Segoe UI Emoji', 'Segoe UI Symbol', Symbola, EmojiSymbols !important;">
        </li>
        <li>
            <input type="tel" name="Telefon" placeholder="Telefon*" id="telefon">
        </li>
        <li>
            <input type="email" name="Email" placeholder="E-Mail-Adresse*" id="email">
        </li>
        <li>
            <input type="text" name="Ort" placeholder="Wo ist der Schaden?*" id="ort" data-emoji_font="true" style="font-family: 'Avenir Next', Avenir, 'Segoe UI Emoji', 'Segoe UI Symbol', Symbola, EmojiSymbols !important;">
        </li>
        <li>
            <input type="file" name="fileToUpload" id="fileToUpload">
        <li>
            <textarea  name="Schadensbericht" placeholder="Schadensbericht*" id="bericht" data-emoji_font="true" style="font-family: 'Avenir Next', Avenir, 'Segoe UI Emoji', 'Segoe UI Symbol', Symbola, EmojiSymbols !important;"></textarea>
            </li>
        <li>
            Kopie an mich
            <input name="checkbox" id="checkbox" type="checkbox" class="toggle">
        </li>
        <li>
            <a name="submit" value="Upload" type="submit" style="margin-top: 10px; margin-bottom: 10px;" href="#" class="submit whiteButton">Senden</a>
        </li>
    </ul>
</form>

.PHP:

if(isset($_POST['fileToUpload'])){
    $src = $_FILES['fileToUpload']['tmp_name'];
    $dst = $target_path;
    if (!file_exists($src))
       echo ("<br>File wasn't found<br> SRC = ".$_REQUEST['file']);
    if (!is_readable($src))
       echo ("<br>File is uploaded but not readable");
    if (!is_writeable($destination_path))
       echo ("<br>Check your permission for the destination directory");
    @touch($dst);
    if (!file_exists($dst))
       echo ("<br>Error (?)");

        if (@move_uploaded_file($_FILES['fileToUpload']['tmp_name'], "images/".$_FILES['fileToUpload']["name"])) {
        $checkUpload = 'true';
        }
        else {  
        $checkUpload = 'false'; 
    }
}
else {
    echo ("<br>Error: Not working");
}

我几周前刚开始编程,我对 Web 开发真的很陌生,所以如果你发布完成的代码如何修复它或详细说明,这将对我有所帮助。

1) 你的代码在PHPif(isset($_POST['file'])){,在你的HTML中,控件的名称是filetoUpload <input type="file" name="fileToUpload" id="fileToUpload">

匹配名称,您应该通过。2) <li><a name="submit" value="Upload" type="submit" style="margin-top: 10px; margin-bottom: 10px;" href="#" class="submit whiteButton">Senden</a> 如果我没记错的话,<a>标签从来都不是 submit 型,它总是input type="submit",或者如果你想提交表单,从你的代码中删除type="submit",而是使用此代码

<li><a name="submit" value="Upload" onclick="document.forms[0].submit();" style="margin-top: 10px; margin-bottom: 10px;" href="#" class="submit whiteButton">Senden</a>

所以我不了解你,但要从编程开始,然后使用框架开始......不是最佳的。

上传文件(通常)不是"ajax问题"。有一些代码禁止 ajax 请求,如果你不遵守规则。论坛

你为什么不只使用一个扩展来连接?喜欢这个或这个或这个

或者如果你愿意,可以写你自己的。教程(德语)