我正在尝试在表单上上传图片,但我正在使用Jquery .Post函数来提交表单的数据。我得到一个未经解释的索引的PHP错误。这是我的代码的一小部分:
相关HTML:
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
Picture: <input name="uploadedfile" id="uploadedfile" type="file" />
相关的jQuery
$.post("registerCB.php", {
uploadedfile: $("#uploadedfile").val()
}
处理提交的PHP:
//file upload
$uploadedfile= $_POST["uploadedfile"];
/*--------------------Image Uploads-------------------------*/
// Where the file is going to be placed
$target_path = "userImages/";
/* Add the original filename to our target path.
Result is "uploads/filename.extension" */
$target_path = $target_path . basename( $_FILES[$uploadedfile]['name']);
错误:
结论: 我认为问题是图像输入上的.val()。我对该元素发出了警报,它只会提醒文件名而不是整个路径。
如何获得整条路径?
还有一件事---- 我想控制文件的名称。所以无论用户上传什么,我都可以控制名称....这可能吗?
感谢!!!
答案 0 :(得分:1)
您应该阅读有关file uploading using POST。
的PHP文档答案 1 :(得分:1)
你无法读取<input type='data'/>
的值,然后通过jQuery发布一些信息。
你需要通过jQuery发布表单<input type='data'>
在!
<form type='post' id='myForm' enctype="multipart/form-data">
<input type='file' name='uploadedFile'/>
</form>
$("myForm").attr("action", "registerCB.php").submit();
关于通过php读取数据,我会refer to the php.net article
答案 2 :(得分:0)
出于安全原因,浏览器不包含完整路径。您可以控制服务器上文件的名称。
如果要异步上传,应该查看一些现有的jquery插件,例如:
或
答案 3 :(得分:0)
对于目标路径,您必须使用以下内容:
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);