【发布时间】:2018-05-30 08:51:32
【问题描述】:
我是 VueJs 的新手,我想使用 vuejs 输入图像文件和一些文本来创建新用户。到目前为止,我已经制作了base64图像,但是我不知道如何将这个base64图像传递给服务器中的slim code。 这是我的vue代码:
输入文件
<input class="file-input" type="file" name="userPhoto" @change="uploadPhoto">
方法:
uploadPhoto: function(e){
var reader = new FileReader()
reader.readAsDataURL(e.target.files[0])
reader.onload = (e) => {
this.usr.user_photo = e.target.result
}
}
帖子:
console.log(this.usr);
this.$http.post('MyAPI', this.usr)
.then(function(response){
this.$router.push({path: '/'});
}
console.log 输出这个对象: Image
这是我在苗条帖子请求中的代码
$app->post('/api/user/add', function(Request $request, Response $response){
//Upload Files
$directory = $this->get('upload_directory');
$uploadFiles = $request->getUploadedFiles();
$uploadedFile = $uploadFiles['userPhoto'];
if($uploadedFile->getError() === UPLOAD_ERR_OK){
$filename = moveUploadedFile($directory,$uploadedFile);
$response->write('Uploaded '.$filename.'<br/>');
}
function moveUploadedFile($directory, UploadedFile $uploadedFile){
$extension = pathinfo($uploadedFile->getClientFilename());
$basename = bin2hex(random_bytes(8));
$filename = sprinf('%s.%0.8s',$basename, $extension);
$uploadedFile->moveTo($directory.'/'.$filename);
return $filename;
}
$user_id = $request->getParam('user_id');
$password = $request->getParam('password');
$name = $request->getParam('name');
$status = $request->getParam('status');
$prodi = $request->getParam('prodi');
$social_link = $request->getParam('social_link');
$sql = "INSERT INTO user
VALUES (:user_id,:password,:name,:status,:prodi,CURRENT_TIMESTAMP(),'$filename',:social_link)";
try{
// Get DB Object
$db = new db();
// Connect
$db = $db->connect();
$stmt = $db->prepare($sql);
$stmt->bindParam(':user_id', $user_id);
$stmt->bindParam(':password', $password);
$stmt->bindParam(':name', $name);
$stmt->bindParam(':status', $status);
$stmt->bindParam(':prodi', $prodi);
$stmt->bindParam(':social_link', $social_link);
$stmt->execute();
echo '{"notice" : {"text": "User Added"}}';
} catch(PDOException $e){
echo '{"Error": {"text": }'.$e->getMessage().'}';
}
});
我已经尝试使用 resteasy 并将所有对象复制粘贴到“usr”中,但是我收到了这个错误:
500 内部服务器错误
谁能告诉我怎么做?谢谢
【问题讨论】:
标签: javascript php vue.js frameworks slim