这几天来,我一直对这个问题耿耿于怀,似乎在任何地方都找不到正确的答案。任何帮助都将不胜感激!
最终目标:让用户上传最多4张图片。检查错误。使用文件名上传图片到文件系统中的用户文件夹中(mkdir如果不存在),将文件路径存储在SQL表的相应部分。
我不断地改变事情以获得部分结果,现在我已经把自己编码成了一个大习惯。如果您有任何问题,请告诉我,甚至可以建议一个更好的方法来实现最终目标。
谢谢!!
SQL表:post\u id、user\u id、created、post\u title、short\u descripp、Long\u descripp、image1、image1\u cap、image2、image2\u cap、image3、image3\u cap、image4\u cap
<form method ='post' enctype='multipart/form-data' action='/posts/p_add'>
<h1><label for = 'content'>CREATE POST:</label><br></h1>
Post Title <input type='text' name='post_title'><br><br>
Short Description <input type='text' name='shortDescrip'><br><br>
Long Description<textarea name = 'longDescrip' id = 'longDescrip'></textarea>
<br><br>
<label for="image1">Image 1:</label>
<input type="file" name="image1" id="image1"><br>
Image Caption<input type='text' name='image1_cap'><br>
<label for="image2">Image 2:</label>
<input type="file" name="image2" id="image2"><br>
Image Caption<input type='text' name='image2_cap'><br>
<label for="image3">Image 3:</label>
<input type="file" name="image3" id="image3"><br>
Image Caption<input type='text' name='image3_cap'><br>
<label for="image4">Image 4:</label>
<input type="file" name="image4" id="image4"><br>
Image Caption<input type='text' name='image4_cap'><br>
<input type = 'Submit' value = 'POST'>
</form>
public function p_add(){
# associate post with the user
$_POST['user_id'] = $this->user->user_id;
# unix timestamp for created & modified
$_POST['created'] = Time::now();
$filename = $_POST['filename'];
# create file path for images
$imgPath = '/uploads/images/'.$this->user->user_id.'/';
if (!file_exists($imgPath)){
mkdir($imgPath, 0777, true);
}
if ($_FILES["file"]["error"] == 0){
for($x=1; $x<=4 ; $x++){
//print_r($_FILES);
# upload the user-chosen file and save to img file
$image = Upload::upload($_FILES, 'uploads/images/',
array("jpg", "JPG", "jpeg", "JPEG", "gif", "GIF", "png", "PNG"), $filename);
print_r($image);
# notify of error
if($image == 'Invalid file type.') {
echo "invalid file type";
}
else {
# add to DB
$data = Array("image".$x => $image);
DB::instance(DB_NAME)->insert('posts', $data);
# resize the image and save again
/*$imgObj = new Image($_SERVER["DOCUMENT_ROOT"].'/uploads/images/'.$image);
$imgObj->resize(100,100,"crop");
$imgObj->save_image($_SERVER["DOCUMENT_ROOT"].'/uploads/images/'.$image);*/
}
}
}else{
# if there is an error let it be known
echo "there has been an error";
}
# insert into db
DB::instance(DB_NAME)->insert('posts', $_POST);
# feedback
echo "Your post was added";
}
从框架上传功能:
public static function upload($file_obj, $upload_dir, $allowed_files, $new_file_name = NULL) {
# Access first element in file_obj array (b/c we're dealing with single file uploads only)
$key = key($file_obj);
$original_file_name = $file_obj[$key]['name'];
$temp_file = $file_obj[$key]['tmp_name'];
$upload_dir = $upload_dir;
# If new file name not given, use original file name
if($new_file_name == NULL) $new_file_name = $original_file_name;
$file_parts = pathinfo($original_file_name);
$target_file = getcwd().$upload_dir . $new_file_name . "." . $file_parts['extension'];
# Validate the filetype
if (in_array($file_parts['extension'], $allowed_files)) {
# Save the file
move_uploaded_file($temp_file,$target_file);
return $new_file_name . "." . $file_parts['extension'];
} else {
return 'Invalid file type.';
}
}
indexname中有一个错误:
if ($_FILES["file"])...
您没有
if ($_FILES["image1"]["error"] == 0)
在这种情况下重写代码。
更新:
非常有趣的上传功能...糟糕的解决方案。
试试这个:
$image = Upload::upload(array($_FILES['image'.$x]), 'uploads/images/',
问题内容: Upload.php: 这是表格(在单独的文件中): 错误是 ($ Filename = $ _ POST [‘Filename’];) 和 (回显“文件“。basename($ _FILES [‘uploadedfile’] [‘Filename’])。”已经上传,并且您的信息已添加到目录中“;) 给我: 问题答案: 首先,您应该使用它进行调试,然后查看其中包含的内容。: 您将看起来
日安!我正在尝试搜索一个从Android上传一个图像文件到一个在线MySQL数据库的基本教程,但是我找不到任何。 我现在正在做一个activity,可以把用户的个人资料图片从Android上传到在线服务器上。 我需要的是像显示一个按钮,当它被点击时,用户可以从文件中选择一个图像。有人能指导我做这件事吗?提前道谢!
我有一个带有文件输入字段的表单: 然后我做的东西与此图像文件提交: 我要保存图像的目录名为,与上面的目录相同。 您可能会注意到,在上面我在类insertBlog`的代码是: 当用户填写表单时,除了图像信息之外,它还将所有其他信息正确地存储在MySQL表中。此外,它不会将实际图像存储在文件夹中。那么,如何让这个脚本将图像上传到文件夹,并将其路径存储在mysql表中呢。目前,它没有将图像存储在数据库中
问题内容: 我想将图像的下载URL放入Firebase数据库中。我可以将图像上传到存储中,但无法弄清楚如何将URL与其余的“帖子”一起放入数据库。 问题答案: 像这样组织您和func: 接下来,只需连接并保存到您的节点即可。 您也可以查看我有关上传数据并将URL保存到数据库的答案 希望能帮助到你
我不懂Python语言。有人能帮我理解我是否正确地将此转换为PHP吗?我想用PHP上传一个文件到http://telegra.ph,但是我不知道如何从PHP上传。 以下代码是Python Telegraph API包装库中的一个示例: 这是我的PHP代码,不起作用。有什么不对劲吗? 当我运行此代码时,我看到以下错误: 警告:复制(telegra.ph/upload):无法打开流:HTTP包装器不支
我正在使用一个Vaadin上传组件,到目前为止,我已经成功地将一个图像上传到一个目录,并在成功上传后在面板组件中显示它。在这之后,我想做的是把它也插入到数据库中。我有一个名为Show的表,它有一个名称、日期和图像。在Show类中,我尝试将图像作为字节数组或Blob。 在上传成功的方法中,我想将文件转换为字节数组,到目前为止我已经尝试过了: 我也试过: uIP它实际上是我的上传ImagePresen