jQtouch/Contao 图片上传 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 开发真的很陌生,所以如果你 post 完成代码如何修复它或详细说明,它会对我有所帮助。
1) 您的代码在 PHP
中有 if(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>
标签是 never 类型 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-problem"。
如果您不遵守规则,有些代码会禁止 ajax 请求。 forum
你为什么不直接使用 contao 的扩展?
喜欢this one or this one or this one
如果需要,也可以自己编写。
Tutorial(德语)
我正在尝试将带有表单的图像上传到我的网络服务器,但 $_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 开发真的很陌生,所以如果你 post 完成代码如何修复它或详细说明,它会对我有所帮助。
1) 您的代码在 PHP
中有 if(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>
标签是 never 类型 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-problem"。 如果您不遵守规则,有些代码会禁止 ajax 请求。 forum
你为什么不直接使用 contao 的扩展? 喜欢this one or this one or this one
如果需要,也可以自己编写。 Tutorial(德语)