我正在尝试将图片上传到服务器。
我有一个带有几个输入的表格...... 在这个表单中,我有一个包含另一个上传表单的iframe,这是因为我不希望原始表单提交()。
原始形式基本上是:
<form> ...... bla bla bla alot of inputs....<iframe src="pic_upload.html"></iframe></form>
这是pic_upload.html:
</head>
<body><form name="pic_form" id="pic_form" action="bincgi/imageUpload.php" method="post" target="pic_target"><input name="pic_file" type="file" id="pic_file" size="35" onchange="this.form.submit();"></form><div id="pic_target" name="pic_target" style="width:80px; height:80px;"></div></body>
</html>
这是imageUpload.php:
<?php
$destination_path = getcwd().DIRECTORY_SEPARATOR;
//echo $destination_path;
$result = 0;
$target_path = $destination_path . basename($_FILES['pic_file']['name']);
if(@move_uploaded_file($_FILES['pic_file']['tmp_name'], $target_path)) {
$result = 1;
}
?>
我收到此错误:未定义的索引:imageUpload.php第5行的pic_file
另外,如果我开始工作,有没有一种方法可以在表单目标中显示上传的图像?
非常感谢! PS:我会在标签上添加javascript,因为也许这就是我需要的东西!
答案 0 :(得分:2)
不要忘记表单属性
enctype="multipart/form-data"
答案 1 :(得分:1)
表单必须像这样
<form enctype="multipart/form-data" action="__URL__" method="POST">
查看this PHP.net documentation了解详情。
答案 2 :(得分:0)
首先,您需要测试$_FILES
是否包含密钥为pic_file
的项目。因此,请使用isset
函数执行此操作:
$destination_path = getcwd().DIRECTORY_SEPARATOR;
//echo $destination_path;
$result = 0;
if (isset($_FILES['pic_file'])) {
$target_path = $destination_path . basename($_FILES['pic_file']['name']);
if (@move_uploaded_file($_FILES['pic_file']['tmp_name'], $target_path)) {
$result = 1;
}
}