我的单个产品页面上有一个表单,用于提交带有订单的图像。当按下按钮时,它应该上传一个图像,但它会一直导航到“找不到页面”页面。这就是它的样子:
function add_checkout_notice() {
echo '<form action="accept-file.php" method="POST" enctype="multipart/form-data">';
echo '<input type="file" name="photo[]" id="photoUpload" />';
echo '<input type="submit" name="submitPhoto" value="Submit">';
//echo '<input type="text" name="test_field" value="stuff">';
echo '</form>';
}
add_action( 'woocommerce_single_product_summary', 'add_checkout_notice');
accept-file中的代码如下所示:
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["photo"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
$testLog = fopen(plugin_dir_path( __FILE__ )."log.txt","w") or exit ("Unable to open file!");
fwrite ($testLog ,pathinfo($target_file,PATHINFO_EXTENSION));
fwrite ($testLog ,$_FILES["photo"]["name"]);
fwrite ($testLog ,$target_dir);
// Check if image file is a actual image or fake image
if(isset($_POST["submitPhoto"])) {
fwrite ($testLog ,"set");
$check = getimagesize($_FILES["photo"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
fwrite ($testLog ,"is image");
$uploadOk = 1;
} else {
echo "File is not an image.";
fwrite ($testLog ,"not an image");
$uploadOk = 0;
}
}
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
fwrite ($testLog ,"already exists");
$uploadOk = 0;
}
任何建议?
答案 0 :(得分:0)
如果您的accept_file.php代码根本没有运行,那么这意味着您需要更改表单上的ACTION属性,以确保它实际指向服务器上的正确文件。你现在正在使用相对路径,这可能需要是绝对的(以/)开头。
如果您不希望浏览器在提交表单时执行默认操作(即“更改页面”),则需要使用javascript发布表单并使用{{3}停止默认表单行为}。